Merge "Update Touchpad settings page to include mouse." into main
diff --git a/Android.bp b/Android.bp
index d6a54f2..0fd4cb0 100644
--- a/Android.bp
+++ b/Android.bp
@@ -86,6 +86,7 @@
"securebox",
"android.os.flags-aconfig-java",
"//frameworks/libs/systemui:com_android_systemui_shared_flags_lib",
+ "WindowManager-Shell-shared-desktopMode",
// Settings dependencies
"FingerprintManagerInteractor",
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index b28da4f..223b473f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2799,7 +2799,9 @@
<activity android:name=".biometrics.fingerprint.FingerprintSettings"
android:exported="false"
android:taskAffinity="com.android.settings.root" />
- <activity android:name=".biometrics.fingerprint.FingerprintEnrollFindSensor" android:exported="false"/>
+ <activity android:name=".biometrics.fingerprint.FingerprintEnrollFindSensor"
+ android:exported="false"
+ android:theme="@style/GlifTheme.Light"/>
<activity android:name=".biometrics.fingerprint.FingerprintEnrollEnrolling" android:exported="false"/>
<activity android:name=".biometrics.fingerprint.FingerprintEnrollFinish" android:exported="false"/>
<activity android:name=".biometrics.fingerprint.FingerprintEnrollParentalConsent" android:exported="false"/>
@@ -2813,26 +2815,14 @@
</intent-filter>
</activity>
- <activity android:name=".biometrics2.ui.view.FingerprintEnrollmentActivity"
- android:exported="true"
- android:theme="@style/GlifTheme.Light" />
-
- <activity android:name=".biometrics2.ui.view.FingerprintEnrollmentActivity$InternalActivity"
- android:exported="false"
- android:theme="@style/GlifTheme.Light"
- android:taskAffinity="com.android.settings.root" />
-
- <activity android:name=".biometrics2.ui.view.FingerprintEnrollmentActivity$SetupActivity"
- android:exported="true"
- android:permission="android.permission.MANAGE_FINGERPRINT"
- android:theme="@style/GlifTheme.Light" />
-
<activity android:name=".biometrics.fingerprint.FingerprintEnrollIntroductionInternal"
android:exported="false"
android:theme="@style/GlifTheme.Light"
android:taskAffinity="com.android.settings.root" />
- <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFindSensor" android:exported="false"/>
+ <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFindSensor"
+ android:exported="false"
+ android:theme="@style/GlifTheme.Light"/>
<activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollEnrolling" android:exported="false"/>
<activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFinish" android:exported="false"/>
<activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollIntroduction"
@@ -5183,6 +5173,15 @@
<activity android:name=".spa.SpaBridgeActivity" android:exported="false"/>
<activity android:name=".spa.SpaAppBridgeActivity" android:exported="false"/>
+ <activity
+ android:name=".spa.search.SpaSearchLandingActivity"
+ android:exported="true">
+ <intent-filter android:priority="1">
+ <action android:name="android.settings.SPA_SEARCH_LANDING" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+
<activity android:name=".Settings$FingerprintSettingsActivityV2"
android:label="@string/security_settings_fingerprint_preference_title"
android:exported="false"
diff --git a/aconfig/accessibility/accessibility_flags.aconfig b/aconfig/accessibility/accessibility_flags.aconfig
index 2c92547..3ed618b 100644
--- a/aconfig/accessibility/accessibility_flags.aconfig
+++ b/aconfig/accessibility/accessibility_flags.aconfig
@@ -11,6 +11,16 @@
}
flag {
+ name: "audio_balance_state_description"
+ namespace: "accessibility"
+ description: "Provides a more valuable state description to the audio balance slider."
+ bug: "319575109"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
+
+flag {
name: "edit_shortcuts_in_full_screen"
namespace: "accessibility"
description: "Show the edit shorcuts screen in full screen, since the shortcut options are increasing."
diff --git a/aconfig/settings_bluetooth_declarations.aconfig b/aconfig/settings_bluetooth_declarations.aconfig
index c2684f2..b8b9d9f 100644
--- a/aconfig/settings_bluetooth_declarations.aconfig
+++ b/aconfig/settings_bluetooth_declarations.aconfig
@@ -24,3 +24,10 @@
purpose: PURPOSE_BUGFIX
}
}
+
+flag {
+ name: "enable_bluetooth_device_details_polish"
+ namespace: "cross_device_experiences"
+ description: "Gates whether to enable bluetooth device details polish"
+ bug: "343317785"
+}
diff --git a/aconfig/settings_flag_declarations.aconfig b/aconfig/settings_flag_declarations.aconfig
index b90ff9f..2c8eade 100644
--- a/aconfig/settings_flag_declarations.aconfig
+++ b/aconfig/settings_flag_declarations.aconfig
@@ -42,3 +42,10 @@
description: "Feature flag to remove relevant slices dependencies."
bug: "297367302"
}
+
+flag {
+ name: "support_raw_dynamic_icons"
+ namespace: "android_settings"
+ description: "Flag to gate support of injected preference icons containing raw data"
+ bug: "351884562"
+}
diff --git a/res-product/values-fr-rCA/strings.xml b/res-product/values-fr-rCA/strings.xml
index 580a4fa..8ae77c6 100644
--- a/res-product/values-fr-rCA/strings.xml
+++ b/res-product/values-fr-rCA/strings.xml
@@ -25,20 +25,20 @@
<string name="bluetooth_footer_mac_message" product="device" msgid="8944917742814573320">"Adresse Bluetooth de l\'appareil : <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
<string name="bluetooth_ask_discovery" product="tablet" msgid="7430581669309228387">"<xliff:g id="APP_NAME">%1$s</xliff:g> souhaite rendre votre tablette visible à d\'autres appareils Bluetooth pendant <xliff:g id="TIMEOUT">%2$d</xliff:g> secondes."</string>
<string name="bluetooth_ask_discovery" product="default" msgid="3947027393224406367">"<xliff:g id="APP_NAME">%1$s</xliff:g> souhaite rendre votre téléphone visible à d\'autres appareils Bluetooth pendant <xliff:g id="TIMEOUT">%2$d</xliff:g> secondes."</string>
- <string name="bluetooth_ask_discovery_no_name" product="tablet" msgid="440976482246291783">"Une application souhaite rendre votre tablette visible à d\'autres appareils Bluetooth pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes."</string>
- <string name="bluetooth_ask_discovery_no_name" product="default" msgid="5164413774312648842">"Une application souhaite rendre votre téléphone visible à d\'autres appareils Bluetooth pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes."</string>
+ <string name="bluetooth_ask_discovery_no_name" product="tablet" msgid="440976482246291783">"Une appli souhaite rendre votre tablette visible à d\'autres appareils Bluetooth pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes."</string>
+ <string name="bluetooth_ask_discovery_no_name" product="default" msgid="5164413774312648842">"Une appli souhaite rendre votre téléphone visible à d\'autres appareils Bluetooth pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes."</string>
<string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="750347558570909906">"<xliff:g id="APP_NAME">%1$s</xliff:g> souhaite rendre votre tablette visible à d\'autres appareils Bluetooth. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
<string name="bluetooth_ask_lasting_discovery" product="default" msgid="5844129004156080891">"<xliff:g id="APP_NAME">%1$s</xliff:g> souhaite rendre votre téléphone visible à d\'autres appareils Bluetooth. Vous pouvez modifier ce paramètres plus tard dans les paramètres Bluetooth."</string>
- <string name="bluetooth_ask_lasting_discovery_no_name" product="tablet" msgid="1062185767225450964">"Une application souhaite rendre votre tablette visible à d\'autres appareils Bluetooth. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
- <string name="bluetooth_ask_lasting_discovery_no_name" product="default" msgid="7909547303183236140">"Une application souhaite rendre votre téléphone visible à d\'autres appareils Bluetooth. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
+ <string name="bluetooth_ask_lasting_discovery_no_name" product="tablet" msgid="1062185767225450964">"Une appli souhaite rendre votre tablette visible à d\'autres appareils Bluetooth. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
+ <string name="bluetooth_ask_lasting_discovery_no_name" product="default" msgid="7909547303183236140">"Une appli souhaite rendre votre téléphone visible à d\'autres appareils Bluetooth. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
<string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="6187874232925632790">"<xliff:g id="APP_NAME">%1$s</xliff:g> souhaite activer le Bluetooth et rendre votre tablette visible à d\'autres appareils pendant <xliff:g id="TIMEOUT">%2$d</xliff:g> secondes."</string>
<string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="1018495685727482700">"<xliff:g id="APP_NAME">%1$s</xliff:g> souhaite activer le Bluetooth et rendre votre téléphone visible à d\'autres appareils pendant <xliff:g id="TIMEOUT">%2$d</xliff:g> secondes."</string>
- <string name="bluetooth_ask_enablement_and_discovery_no_name" product="tablet" msgid="3469927640700478737">"Une application souhaite activer le Bluetooth et rendre votre tablette visible à d\'autres appareils pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes."</string>
- <string name="bluetooth_ask_enablement_and_discovery_no_name" product="default" msgid="4847493437698663706">"Une application souhaite activer le Bluetooth et rendre votre téléphone visible à d\'autres appareils pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes."</string>
+ <string name="bluetooth_ask_enablement_and_discovery_no_name" product="tablet" msgid="3469927640700478737">"Une appli souhaite activer le Bluetooth et rendre votre tablette visible à d\'autres appareils pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes."</string>
+ <string name="bluetooth_ask_enablement_and_discovery_no_name" product="default" msgid="4847493437698663706">"Une appli souhaite activer le Bluetooth et rendre votre téléphone visible à d\'autres appareils pendant <xliff:g id="TIMEOUT">%1$d</xliff:g> secondes."</string>
<string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="487436507630570730">"<xliff:g id="APP_NAME">%1$s</xliff:g> souhaite activer le Bluetooth et rendre votre tablette visible à d\'autres appareils. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
<string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="5169934906530139494">"<xliff:g id="APP_NAME">%1$s</xliff:g> souhaite activer le Bluetooth et rendre votre téléphone visible à d\'autres appareils. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
- <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="505214056751470551">"Une application souhaite activer le Bluetooth et rendre votre tablette visible à d\'autres appareils. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
- <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="6187216564831513193">"Une application souhaite activer le Bluetooth et rendre votre téléphone visible à d\'autres appareils. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
+ <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="505214056751470551">"Une appli souhaite activer le Bluetooth et rendre votre tablette visible à d\'autres appareils. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
+ <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="6187216564831513193">"Une appli souhaite activer le Bluetooth et rendre votre téléphone visible à d\'autres appareils. Vous pouvez modifier ce réglage plus tard dans les paramètres Bluetooth."</string>
<string name="encryption_and_credential_settings_summary" product="default" msgid="3741475436042800617">"Téléphone chiffré"</string>
<string name="not_encrypted_summary" product="default" msgid="330652312169527734">"Téléphone non chiffré"</string>
<string name="encryption_and_credential_settings_summary" product="tablet" msgid="2220021007677215054">"Appareil chiffré"</string>
@@ -49,18 +49,18 @@
<string name="security_settings_face_enroll_introduction_accessibility_expanded" product="default" msgid="2221590003018953090"></string>
<string name="security_settings_face_enroll_introduction_accessibility_expanded" product="tablet" msgid="2221590003018953090"></string>
<string name="security_settings_face_enroll_introduction_accessibility_expanded" product="device" msgid="2221590003018953090"></string>
- <string name="security_settings_face_enroll_introduction_message" product="default" msgid="847716059867943459">"Utilisez votre visage pour déverrouiller votre téléphone, autoriser vos achats et vous connecter à des applications."</string>
- <string name="security_settings_face_enroll_introduction_message" product="tablet" msgid="3976493376026067375">"Utilisez votre visage pour déverrouiller votre tablette, autoriser vos achats et vous connecter à des applications."</string>
- <string name="security_settings_face_enroll_introduction_message" product="device" msgid="6432265830098806034">"Utilisez votre visage pour déverrouiller votre appareil, autoriser vos achats et vous connecter à des applications."</string>
+ <string name="security_settings_face_enroll_introduction_message" product="default" msgid="847716059867943459">"Utilisez votre visage pour déverrouiller votre téléphone, autoriser vos achats et vous connecter à des applis."</string>
+ <string name="security_settings_face_enroll_introduction_message" product="tablet" msgid="3976493376026067375">"Utilisez votre visage pour déverrouiller votre tablette, autoriser vos achats et vous connecter à des applis."</string>
+ <string name="security_settings_face_enroll_introduction_message" product="device" msgid="6432265830098806034">"Utilisez votre visage pour déverrouiller votre appareil, autoriser vos achats et vous connecter à des applis."</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="default" msgid="8492576130109033451">"Utilisez votre visage pour déverrouiller votre téléphone ou pour confirmer votre identité dans les applis, par exemple lorsque vous vous connectez ou que vous approuvez un achat"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="tablet" msgid="8736497842795690098">"Utilisez votre visage pour déverrouiller votre tablette ou pour confirmer votre identité dans les applis, par exemple lorsque vous vous connectez ou que vous approuvez un achat"</string>
<string name="security_settings_face_enroll_introduction_message_class3" product="device" msgid="2558057312718921078">"Utilisez votre visage pour déverrouiller votre appareil ou pour confirmer votre identité dans les applis, par exemple lorsque vous vous connectez ou que vous approuvez un achat"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0" product="default" msgid="9086377203303858619">"Autoriser votre enfant à utiliser son visage pour déverrouiller son téléphone"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0" product="tablet" msgid="4560949471246282574">"Autoriser votre enfant à utiliser son visage pour déverrouiller sa tablette"</string>
<string name="security_settings_face_enroll_introduction_consent_message_0" product="device" msgid="1156063265854416046">"Autoriser votre enfant à utiliser son visage pour déverrouiller son appareil"</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="default" msgid="5082581184108528408">"Autorisez votre enfant à utiliser son visage pour déverrouiller son téléphone ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applications, approuve un achat et plus."</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="tablet" msgid="5932555218164668532">"Autorisez votre enfant à utiliser son visage pour déverrouiller sa tablette ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applications, approuve un achat et plus."</string>
- <string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="device" msgid="8943878265098867810">"Autorisez votre enfant à utiliser son visage pour déverrouiller son appareil ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applications, approuve un achat et plus."</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="default" msgid="5082581184108528408">"Autorisez votre enfant à utiliser son visage pour déverrouiller son téléphone ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applis, approuve un achat et plus."</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="tablet" msgid="5932555218164668532">"Autorisez votre enfant à utiliser son visage pour déverrouiller sa tablette ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applis, approuve un achat et plus."</string>
+ <string name="security_settings_face_enroll_introduction_consent_message_0_class3" product="device" msgid="8943878265098867810">"Autorisez votre enfant à utiliser son visage pour déverrouiller son appareil ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applis, approuve un achat et plus."</string>
<string name="security_settings_face_enroll_introduction_consent_message" product="default" msgid="3698558920963989416">"L\'utilisation du visage de votre enfant pour déverrouiller son téléphone peut être moins sûre qu\'un schéma ou un NIP robustes."</string>
<string name="security_settings_face_enroll_introduction_consent_message" product="tablet" msgid="2689983368730833505">"L\'utilisation du visage de votre enfant pour déverrouiller sa tablette peut être moins sûre qu\'un schéma ou un NIP robustes."</string>
<string name="security_settings_face_enroll_introduction_consent_message" product="device" msgid="5768077532130409820">"L\'utilisation du visage de votre enfant pour déverrouiller son appareil peut être moins sûre qu\'un schéma ou un NIP robustes."</string>
@@ -94,22 +94,22 @@
<string name="security_settings_face_enroll_introduction_control_consent_message" product="default" msgid="6983939010814873996"></string>
<string name="security_settings_face_enroll_introduction_control_consent_message" product="tablet" msgid="6983939010814873996"></string>
<string name="security_settings_face_enroll_introduction_control_consent_message" product="device" msgid="6983939010814873996"></string>
- <string name="security_settings_face_settings_footer" product="default" msgid="3036403896485044957">"Utilisez votre visage pour déverrouiller votre téléphone ou pour vous authentifier dans les applications, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller le téléphone en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre téléphone en le tenant devant votre visage.\n\nVotre téléphone pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer" product="tablet" msgid="3467711032275909082">"Utilisez votre visage pour déverrouiller votre tablette ou pour vous authentifier dans les applications, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller la tablette en la regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre tablette en la tenant devant votre visage.\n\nVotre tablette pourrait être déverrouillée par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer" product="device" msgid="6237815625247917310">"Utilisez votre visage pour déverrouiller votre appareil ou pour vous authentifier dans les applications, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller l\'appareil en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre appareil en le tenant devant votre visage.\n\nVotre appareil pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer_attention_not_supported" product="default" msgid="8266896471278294942">"Utilisez votre visage pour déverrouiller votre téléphone ou pour vous authentifier dans les applications, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller le téléphone en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre téléphone en le tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre téléphone pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer_attention_not_supported" product="tablet" msgid="6932278790700490818">"Utilisez votre visage pour déverrouiller votre tablette ou pour vous authentifier dans les applications, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller la tablette en la regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre tablette en la tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre tablette pourrait être déverrouillée par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer_attention_not_supported" product="device" msgid="2559602951942339212">"Utilisez votre visage pour déverrouiller votre appareil ou pour vous authentifier dans les applications, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller l\'appareil en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre appareil en le tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre appareil pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer_class3" product="default" msgid="7050076350282827484">"Utilisez votre visage pour déverrouiller votre téléphone ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller le téléphone en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre téléphone en le tenant devant votre visage.\n\nVotre téléphone pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer_class3" product="tablet" msgid="8013245173915280810">"Utilisez votre visage pour déverrouiller votre tablette ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller la tablette en la regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre tablette en la tenant devant votre visage.\n\nVotre tablette pourrait être déverrouillée par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer_class3" product="device" msgid="4411845832787210264">"Utilisez votre visage pour déverrouiller votre appareil ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller l\'appareil en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre appareil en le tenant devant votre visage.\n\nVotre appareil pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Utilisez votre visage pour déverrouiller votre téléphone ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller le téléphone en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre téléphone en le tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre téléphone pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"Utilisez votre visage pour déverrouiller votre tablette ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller la tablette en la regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre tablette en la tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre tablette pourrait être déverrouillée par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"Utilisez votre visage pour déverrouiller votre appareil ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller l\'appareil en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre appareil en le tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre appareil pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
- <string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Utilisez votre empreinte digitale pour déverrouiller votre <xliff:g id="DEVICENAME">%s</xliff:g> ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou approuver un achat"</string>
- <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"Autorisez votre enfant à utiliser son empreinte digitale pour déverrouiller son téléphone ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applications, approuve un achat et plus."</string>
- <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"Autorisez votre enfant à utiliser son empreinte digitale pour déverrouiller sa tablette ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applications, approuve un achat et plus."</string>
- <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"Autorisez votre enfant à utiliser son empreinte digitale pour déverrouiller son appareil ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applications, approuve un achat et plus."</string>
+ <string name="security_settings_face_settings_footer" product="default" msgid="3036403896485044957">"Utilisez votre visage pour déverrouiller votre téléphone ou pour vous authentifier dans les applis, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller le téléphone en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre téléphone en le tenant devant votre visage.\n\nVotre téléphone pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer" product="tablet" msgid="3467711032275909082">"Utilisez votre visage pour déverrouiller votre tablette ou pour vous authentifier dans les applis, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller la tablette en la regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre tablette en la tenant devant votre visage.\n\nVotre tablette pourrait être déverrouillée par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer" product="device" msgid="6237815625247917310">"Utilisez votre visage pour déverrouiller votre appareil ou pour vous authentifier dans les applis, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller l\'appareil en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre appareil en le tenant devant votre visage.\n\nVotre appareil pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer_attention_not_supported" product="default" msgid="8266896471278294942">"Utilisez votre visage pour déverrouiller votre téléphone ou pour vous authentifier dans les applis, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller le téléphone en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre téléphone en le tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre téléphone pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer_attention_not_supported" product="tablet" msgid="6932278790700490818">"Utilisez votre visage pour déverrouiller votre tablette ou pour vous authentifier dans les applis, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller la tablette en la regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre tablette en la tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre tablette pourrait être déverrouillée par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer_attention_not_supported" product="device" msgid="2559602951942339212">"Utilisez votre visage pour déverrouiller votre appareil ou pour vous authentifier dans les applis, par exemple lorsque vous vous connectez ou approuvez un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller l\'appareil en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre appareil en le tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre appareil pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer_class3" product="default" msgid="7050076350282827484">"Utilisez votre visage pour déverrouiller votre téléphone ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller le téléphone en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre téléphone en le tenant devant votre visage.\n\nVotre téléphone pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer_class3" product="tablet" msgid="8013245173915280810">"Utilisez votre visage pour déverrouiller votre tablette ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller la tablette en la regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre tablette en la tenant devant votre visage.\n\nVotre tablette pourrait être déverrouillée par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer_class3" product="device" msgid="4411845832787210264">"Utilisez votre visage pour déverrouiller votre appareil ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller l\'appareil en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre appareil en le tenant devant votre visage.\n\nVotre appareil pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Utilisez votre visage pour déverrouiller votre téléphone ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller le téléphone en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre téléphone en le tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre téléphone pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"Utilisez votre visage pour déverrouiller votre tablette ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller la tablette en la regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre tablette en la tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre tablette pourrait être déverrouillée par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"Utilisez votre visage pour déverrouiller votre appareil ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat.\n\nGardez à l\'esprit :\nUn seul visage peut être configuré à la fois. Pour ajouter un autre visage, supprimez le visage actuel.\n\nVous pourriez déverrouiller l\'appareil en le regardant, même si vous ne cherchiez pas à le faire.\n\nUne autre personne pourrait déverrouiller votre appareil en le tenant devant votre visage, même si vos yeux sont fermés.\n\nVotre appareil pourrait être déverrouillé par une personne qui vous ressemble beaucoup, comme un jumeau identique."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Utilisez votre empreinte digitale pour déverrouiller votre <xliff:g id="DEVICENAME">%s</xliff:g> ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat"</string>
+ <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"Autorisez votre enfant à utiliser son empreinte digitale pour déverrouiller son téléphone ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applis, approuve un achat et plus."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"Autorisez votre enfant à utiliser son empreinte digitale pour déverrouiller sa tablette ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applis, approuve un achat et plus."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"Autorisez votre enfant à utiliser son empreinte digitale pour déverrouiller son appareil ou vérifier qu\'il s\'agit bien de lui. Cette situation se produit lorsqu\'il se connecte à des applis, approuve un achat et plus."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" product="default" msgid="8488497844109768268">"Déverrouiller votre téléphone avec votre empreinte digitale peut être plus risqué qu\'avec un schéma ou un NIP robuste"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" product="tablet" msgid="5688664190282817312">"Le déverrouillage de votre tablette avec votre empreinte digitale peut être plus risqué qu\'avec un schéma ou un NIP robuste"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" product="device" msgid="2814616139536479018">"Le déverrouillage de votre appareil avec votre empreinte digitale peut être plus risqué qu\'avec un schéma ou un NIP robuste"</string>
@@ -146,12 +146,12 @@
<string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Le capteur d\'empreintes digitales est situé sur l\'interrupteur. Il s\'agit du bouton plat situé à côté du bouton de volume surélevé, sur le bord de la tablette."</string>
<string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Le capteur d\'empreintes digitales est situé sur l\'interrupteur. Il s\'agit du bouton plat situé à côté du bouton de volume surélevé, sur le bord de l\'appareil."</string>
<string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Le capteur d\'empreintes digitales est situé sur l\'interrupteur. Il s\'agit du bouton plat situé à côté du bouton de volume surélevé, sur le bord du téléphone."</string>
- <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre tablette ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou approuver un achat"</string>
- <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre appareil ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou approuver un achat"</string>
- <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre téléphone ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou approuver un achat"</string>
- <string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="tablet" msgid="7814892482046294464">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre tablette ou pour vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou pour approuver un achat. \n\nAjoutez une autre empreinte digitale pour faciliter le déverrouillage lorsque vous tenez votre tablette de différentes façons."</string>
- <string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="device" msgid="8418220207105495988">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre appareil ou pour vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou pour approuver un achat.\n\nAjoutez une autre empreinte digitale pour faciliter le déverrouillage lorsque vous tenez votre appareil de différentes façons."</string>
- <string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="default" msgid="3545300825124248359">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre téléphone ou pour vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applications ou pour approuver un achat.\n\nAjoutez une autre empreinte digitale pour faciliter le déverrouillage lorsque vous tenez votre téléphone de différentes façons."</string>
+ <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre tablette ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat"</string>
+ <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre appareil ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat"</string>
+ <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre téléphone ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat"</string>
+ <string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="tablet" msgid="7814892482046294464">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre tablette ou pour vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou pour approuver un achat. \n\nAjoutez une autre empreinte digitale pour faciliter le déverrouillage lorsque vous tenez votre tablette de différentes façons."</string>
+ <string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="device" msgid="8418220207105495988">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre appareil ou pour vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou pour approuver un achat.\n\nAjoutez une autre empreinte digitale pour faciliter le déverrouillage lorsque vous tenez votre appareil de différentes façons."</string>
+ <string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="default" msgid="3545300825124248359">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre téléphone ou pour vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou pour approuver un achat.\n\nAjoutez une autre empreinte digitale pour faciliter le déverrouillage lorsque vous tenez votre téléphone de différentes façons."</string>
<string name="lock_screen_pin_skip_message" product="tablet" msgid="2125894016330764666">"Un NIP protège la tablette en cas de perte ou de vol de celle-ci"</string>
<string name="lock_screen_pattern_skip_message" product="tablet" msgid="7022124791463099454">"Un schéma protège la tablette en cas de perte ou de vol de celle-ci"</string>
<string name="lock_screen_password_skip_message" product="tablet" msgid="7117050321575989041">"Un mot de passe protège la tablette en cas de perte ou de vol de celle-ci"</string>
@@ -191,9 +191,9 @@
<string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Les images et le modèle d\'empreinte digitale associés à « <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> » et stockés sur votre téléphone seront supprimés"</string>
<string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Les images et le modèle d\'empreinte digitale associés à « <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> » et stockés sur votre tablette seront supprimés"</string>
<string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Les images et le modèle d\'empreinte digitale associés à « <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> » et stockés sur votre appareil seront supprimés"</string>
- <string name="fingerprint_last_delete_message" product="default" msgid="3187410175262625294">"Vous ne pourrez pas utiliser votre empreinte digitale pour déverrouiller votre téléphone ni pour vérifier qu\'il s\'agit bien de vous dans les applications."</string>
- <string name="fingerprint_last_delete_message" product="tablet" msgid="8618307419148004587">"Vous ne pourrez pas utiliser votre empreinte digitale pour déverrouiller votre tablette ni pour vérifier qu\'il s\'agit bien de vous dans les applications."</string>
- <string name="fingerprint_last_delete_message" product="device" msgid="3910012280858587242">"Vous ne pourrez pas utiliser votre empreinte digitale pour déverrouiller votre appareil ni pour vérifier qu\'il s\'agit bien de vous dans les applications."</string>
+ <string name="fingerprint_last_delete_message" product="default" msgid="3187410175262625294">"Vous ne pourrez pas utiliser votre empreinte digitale pour déverrouiller votre téléphone ni pour vérifier qu\'il s\'agit bien de vous dans les applis."</string>
+ <string name="fingerprint_last_delete_message" product="tablet" msgid="8618307419148004587">"Vous ne pourrez pas utiliser votre empreinte digitale pour déverrouiller votre tablette ni pour vérifier qu\'il s\'agit bien de vous dans les applis."</string>
+ <string name="fingerprint_last_delete_message" product="device" msgid="3910012280858587242">"Vous ne pourrez pas utiliser votre empreinte digitale pour déverrouiller votre appareil ni pour vérifier qu\'il s\'agit bien de vous dans les applis."</string>
<string name="fingerprint_unlock_title" product="default" msgid="3224008661274975980">"Vous pouvez déverrouiller votre téléphone avec votre empreinte digitale. Pour plus de sécurité, cette option exige un verrouillage d\'écran secondaire."</string>
<string name="fingerprint_unlock_title" product="tablet" msgid="6920040586231644124">"Vous pouvez déverrouiller votre tablette avec votre empreinte digitale. Pour plus de sécurité, cette option exige un verrouillage d\'écran secondaire."</string>
<string name="fingerprint_unlock_title" product="device" msgid="1469790269368691678">"Vous pouvez déverrouiller votre appareil avec votre empreinte digitale. Pour plus de sécurité, cette option exige un verrouillage d\'écran secondaire."</string>
@@ -238,17 +238,17 @@
<string name="status_number_sim_status" product="tablet" msgid="9003886361856568694">"NRM sur la carte SIM"</string>
<string name="status_number_sim_status" product="default" msgid="7536755538266735352">"N° de téléphone sur la carte SIM"</string>
<string name="storage_wizard_init_v2_internal_title" product="tablet" msgid="2049551739429034707">"Formater la carte SD en tant que mémoire interne"</string>
- <string name="storage_wizard_init_v2_internal_summary" product="tablet" msgid="6130017080675241337">"Stockez vos applications et vos contenus multimédias pour les utiliser uniquement sur cette tablette. <a href=https://support.google.com/android/answer/12153449>En savoir plus sur la configuration d\'une carte SD</a>."</string>
+ <string name="storage_wizard_init_v2_internal_summary" product="tablet" msgid="6130017080675241337">"Stockez vos applis et vos contenus multimédias pour les utiliser uniquement sur cette tablette. <a href=https://support.google.com/android/answer/12153449>En savoir plus sur la configuration d\'une carte SD</a>."</string>
<string name="storage_wizard_init_v2_internal_action" product="tablet" msgid="560506072518373839">"Formater"</string>
<string name="storage_wizard_init_v2_internal_title" product="default" msgid="2049551739429034707">"Formater la carte SD en tant que mémoire interne"</string>
- <string name="storage_wizard_init_v2_internal_summary" product="default" msgid="4395040788668914783">"Stockez vos applications et vos contenus multimédias pour les utiliser uniquement sur ce téléphone. <a href=https://support.google.com/android/answer/12153449>En savoir plus sur la configuration d\'une carte SD</a>."</string>
+ <string name="storage_wizard_init_v2_internal_summary" product="default" msgid="4395040788668914783">"Stockez vos applis et vos contenus multimédias pour les utiliser uniquement sur ce téléphone. <a href=https://support.google.com/android/answer/12153449>En savoir plus sur la configuration d\'une carte SD</a>."</string>
<string name="storage_wizard_init_v2_internal_action" product="default" msgid="560506072518373839">"Formater"</string>
- <string name="storage_wizard_migrate_v2_body" product="tablet" msgid="7539293889421540797">"Vous pouvez déplacer vos fichiers et certaines applications sur le périphérique <xliff:g id="NAME">^1</xliff:g>. \n\nCe déplacement libérerait <xliff:g id="SIZE">^2</xliff:g> du stockage de votre tablette et prendrait environ <xliff:g id="DURATION">^3</xliff:g>."</string>
- <string name="storage_wizard_migrate_v2_body" product="default" msgid="3807501187945770401">"Vous pouvez déplacer vos fichiers et certaines applications sur le périphérique <xliff:g id="NAME">^1</xliff:g>. \n\nCe déplacement libérerait <xliff:g id="SIZE">^2</xliff:g> du stockage de votre téléphone et prendrait environ <xliff:g id="DURATION">^3</xliff:g>."</string>
+ <string name="storage_wizard_migrate_v2_body" product="tablet" msgid="7539293889421540797">"Vous pouvez déplacer vos fichiers et certaines applis sur le périphérique <xliff:g id="NAME">^1</xliff:g>. \n\nCe déplacement libérerait <xliff:g id="SIZE">^2</xliff:g> du stockage de votre tablette et prendrait environ <xliff:g id="DURATION">^3</xliff:g>."</string>
+ <string name="storage_wizard_migrate_v2_body" product="default" msgid="3807501187945770401">"Vous pouvez déplacer vos fichiers et certaines applis sur le périphérique <xliff:g id="NAME">^1</xliff:g>. \n\nCe déplacement libérerait <xliff:g id="SIZE">^2</xliff:g> du stockage de votre téléphone et prendrait environ <xliff:g id="DURATION">^3</xliff:g>."</string>
<string name="storage_wizard_migrate_v2_checklist_battery" product="tablet" msgid="5326017162943304749">"Gardez cette tablette chargée"</string>
<string name="storage_wizard_migrate_v2_checklist_battery" product="default" msgid="8041162611685970218">"Gardez ce téléphone chargé"</string>
- <string name="main_clear_desc" product="tablet" msgid="5778614597513856716">"Cette action effacera toutes les données de la "<b>"mémoire de stockage interne"</b>" de votre tablette, y compris :\n\n"<li>"Votre compte Google"</li>\n<li>"Les données et paramètres du système et de l\'application"</li>\n<li>"Les applications téléchargées"</li></string>
- <string name="main_clear_desc" product="default" msgid="1888412491866186706">"Cette action effacera toutes les données de la "<b>"mémoire de stockage interne"</b>" de votre téléphone, y compris :\n\n"<li>"Votre compte Google"</li>\n<li>"Les données et paramètres du système et de l\'application"</li>\n<li>"Les applications téléchargées"</li></string>
+ <string name="main_clear_desc" product="tablet" msgid="5778614597513856716">"Cette action effacera toutes les données de la "<b>"mémoire de stockage interne"</b>" de votre tablette, y compris :\n\n"<li>"Votre compte Google"</li>\n<li>"Les données et paramètres du système et de l\'appli"</li>\n<li>"Les applis téléchargées"</li></string>
+ <string name="main_clear_desc" product="default" msgid="1888412491866186706">"Cette action effacera toutes les données de la "<b>"mémoire de stockage interne"</b>" de votre téléphone, y compris :\n\n"<li>"Votre compte Google"</li>\n<li>"Les données et paramètres du système et de l\'appli"</li>\n<li>"Les applis téléchargées"</li></string>
<string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"Vous êtes actuellement connecté aux comptes suivants :\n"</string>
<string name="main_clear_other_users_present" product="default" msgid="7750368595882863399">\n\n"D\'autres personnes utilisent cet appareil.\n"</string>
<string name="main_clear_desc_erase_external_storage" product="nosdcard" msgid="5834269984459195918">\n\n"Pour supprimer la musique, les photos et les autres données de l\'utilisateur, vous devez effacer la "<b>"mémoire de stockage USB"</b>"."</string>
@@ -269,9 +269,9 @@
<string name="about_settings" product="default" msgid="2621311564780208250">"À propos du téléphone"</string>
<string name="about_settings" product="device" msgid="7595574154492383452">"À propos de l\'appareil"</string>
<string name="about_settings" product="emulator" msgid="1099246296173401003">"À propos de l\'appareil émulé"</string>
- <string name="install_all_warning" product="tablet" msgid="1732116924846572063">"Votre tablette et vos données personnelles sont plus vulnérables aux attaques provenant d\'applications inconnues. En installant des applications provenant de cette source, vous acceptez d\'être le seul responsable de tout dommage causé à votre tablette ou de toute perte de données pouvant découler de l\'utilisation de telles applications."</string>
- <string name="install_all_warning" product="default" msgid="4597256179485325694">"Votre téléphone et vos données personnelles sont plus vulnérables aux attaques provenant d\'applications inconnues. En installant des applications provenant de cette source, vous acceptez d\'être le seul responsable de tout dommage causé à votre téléphone ou de toute perte de données pouvant découler de l\'utilisation de telles applications."</string>
- <string name="install_all_warning" product="device" msgid="6293002353591632851">"Votre appareil et vos données personnelles sont plus vulnérables aux attaques provenant d\'applications inconnues. En installant des applications provenant de cette source, vous acceptez d\'être responsable de tout dommage causé à votre appareil ou de toute perte de données pouvant découler de l\'utilisation de telles applications."</string>
+ <string name="install_all_warning" product="tablet" msgid="1732116924846572063">"Votre tablette et vos données personnelles sont plus vulnérables aux attaques provenant d\'applis inconnues. En installant des applis provenant de cette source, vous acceptez d\'être le seul responsable de tout dommage causé à votre tablette ou de toute perte de données pouvant découler de l\'utilisation de telles applis."</string>
+ <string name="install_all_warning" product="default" msgid="4597256179485325694">"Votre téléphone et vos données personnelles sont plus vulnérables aux attaques provenant d\'applis inconnues. En installant des applis provenant de cette source, vous acceptez d\'être le seul responsable de tout dommage causé à votre téléphone ou de toute perte de données pouvant découler de l\'utilisation de telles applis."</string>
+ <string name="install_all_warning" product="device" msgid="6293002353591632851">"Votre appareil et vos données personnelles sont plus vulnérables aux attaques provenant d\'applis inconnues. En installant des applis provenant de cette source, vous acceptez d\'être responsable de tout dommage causé à votre appareil ou de toute perte de données pouvant découler de l\'utilisation de telles applis."</string>
<string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="6321057186549848774">"Si vous arrêtez ce service, certaines fonctionnalités de votre tablette peuvent cesser de fonctionner correctement jusqu\'à ce que vous ayez éteint, puis rallumé votre appareil."</string>
<string name="runningservicedetails_stop_dlg_text" product="default" msgid="6869998550403667737">"Si vous arrêtez ce service, certaines fonctionnalités de votre téléphone peuvent cesser de fonctionner correctement jusqu\'à ce que vous ayez éteint, puis rallumé votre appareil."</string>
<string name="testing_phone_info" product="tablet" msgid="8267746802132630741">"Informations sur la tablette"</string>
@@ -289,13 +289,13 @@
<string name="battery_tip_summary_summary" product="device" msgid="45436555475195632">"L\'appareil utilise une quantité normale d\'énergie en arrière-plan"</string>
<string name="battery_tip_limited_temporarily_dialog_msg" product="default" msgid="4134817691837413711">"Dans certaines conditions, comme des températures élevées ou de longues périodes de charge, la charge pourrait être limitée à <xliff:g id="PERCENT">%1$s</xliff:g> pour aider à préserver la santé de la pile.\n\nLorsque ces conditions prendront fin, votre téléphone se rechargera normalement de façon automatique."</string>
<string name="battery_tip_limited_temporarily_dialog_msg" product="tablet" msgid="9123428127699951337">"Dans certaines conditions, comme des températures élevées ou de longues périodes de charge, la charge pourrait être limitée à <xliff:g id="PERCENT">%1$s</xliff:g> pour aider à préserver la santé de la pile.\n\nLorsque ces conditions prendront fin, votre tablette se rechargera normalement de façon automatique."</string>
- <string name="battery_tip_dialog_message" product="default" msgid="7183790460600610222">"Comme vous avez utilisé votre téléphone plus que d\'habitude, votre pile risque de s\'épuiser plus tôt que prévu. \n\nLes applications qui utilisent le plus d\'énergie de la pile :"</string>
- <string name="battery_tip_dialog_message" product="tablet" msgid="2702706858728966181">"Comme vous avez utilisé votre tablette plus que d\'habitude, votre pile risque de s\'épuiser plus tôt que prévu. \n\nLes applications qui utilisent le plus d\'énergie de la pile :"</string>
- <string name="battery_tip_dialog_message" product="device" msgid="6488208467377974021">"Comme vous avez utilisé votre appareil plus que d\'habitude, votre pile risque de s\'épuiser plus tôt que prévu. \n\nLes applications qui utilisent le plus d\'énergie de la pile :"</string>
- <string name="battery_tip_dialog_summary_message" product="default" msgid="5760208650901831793">"Vos applications utilisent une quantité normale d\'énergie. Si les applications utilisent trop d\'énergie, votre téléphone vous suggérera des actions à essayer.\n\nVous pouvez toujours activer la fonction Économiseur de pile si la pile est trop faible."</string>
- <string name="battery_tip_dialog_summary_message" product="tablet" msgid="236339248261391160">"Vos applications utilisent une quantité normale d\'énergie. Si les applications utilisent trop d\'énergie, votre tablette vous suggérera des actions à essayer.\n\nVous pouvez toujours activer la fonction Économiseur de pile si la pile est trop faible."</string>
- <string name="battery_tip_dialog_summary_message" product="device" msgid="7885502661524685786">"Vos applications utilisent une quantité normale d\'énergie. Si les applications utilisent trop d\'énergie, votre appareil vous suggérera des actions à essayer.\n\nVous pouvez toujours activer la fonction Économiseur de pile si la pile est trop faible."</string>
- <string name="smart_battery_summary" product="default" msgid="1210637215867635435">"Restreindre l\'usage de la pile pour les applications que vous n\'utilisez pas souvent"</string>
+ <string name="battery_tip_dialog_message" product="default" msgid="7183790460600610222">"Comme vous avez utilisé votre téléphone plus que d\'habitude, votre pile risque de s\'épuiser plus tôt que prévu. \n\nLes applis qui utilisent le plus d\'énergie de la pile :"</string>
+ <string name="battery_tip_dialog_message" product="tablet" msgid="2702706858728966181">"Comme vous avez utilisé votre tablette plus que d\'habitude, votre pile risque de s\'épuiser plus tôt que prévu. \n\nLes applis qui utilisent le plus d\'énergie de la pile :"</string>
+ <string name="battery_tip_dialog_message" product="device" msgid="6488208467377974021">"Comme vous avez utilisé votre appareil plus que d\'habitude, votre pile risque de s\'épuiser plus tôt que prévu. \n\nLes applis qui utilisent le plus d\'énergie de la pile :"</string>
+ <string name="battery_tip_dialog_summary_message" product="default" msgid="5760208650901831793">"Vos applis utilisent une quantité normale d\'énergie. Si les applis utilisent trop d\'énergie, votre téléphone vous suggérera des actions à essayer.\n\nVous pouvez toujours activer la fonction Économiseur de pile si la pile est trop faible."</string>
+ <string name="battery_tip_dialog_summary_message" product="tablet" msgid="236339248261391160">"Vos applis utilisent une quantité normale d\'énergie. Si les applis utilisent trop d\'énergie, votre tablette vous suggérera des actions à essayer.\n\nVous pouvez toujours activer la fonction Économiseur de pile si la pile est trop faible."</string>
+ <string name="battery_tip_dialog_summary_message" product="device" msgid="7885502661524685786">"Vos applis utilisent une quantité normale d\'énergie. Si les applis utilisent trop d\'énergie, votre appareil vous suggérera des actions à essayer.\n\nVous pouvez toujours activer la fonction Économiseur de pile si la pile est trop faible."</string>
+ <string name="smart_battery_summary" product="default" msgid="1210637215867635435">"Restreindre l\'usage de la pile pour les applis que vous n\'utilisez pas souvent"</string>
<string name="battery_usage_screen_footer" product="default" msgid="8872101342490341865">"L\'utilisation de la pile et le temps d\'utilisation des écrans ne sont pas mesurés pendant la recharge du téléphone"</string>
<string name="battery_usage_screen_footer" product="tablet" msgid="1876984641036532124">"L\'utilisation de la pile et le temps d\'utilisation des écrans ne sont pas mesurés pendant la recharge de la tablette"</string>
<string name="battery_usage_screen_footer" product="device" msgid="6488857833906266507">"L\'utilisation de la pile et le temps d\'utilisation des écrans ne sont pas mesurés pendant la recharge de l\'appareil"</string>
@@ -308,9 +308,9 @@
<string name="data_usage_auto_sync_on_dialog" product="default" msgid="7207326473052484970">"Toutes les modifications que vous apportez à vos comptes sur le Web sont automatiquement copiées sur votre téléphone.\n\nCertains comptes peuvent également copier automatiquement sur le Web toutes les modifications que vous apportez sur le téléphone. Les comptes Google fonctionnent de cette façon."</string>
<string name="data_usage_limit_dialog_mobile" product="tablet" msgid="5609616352941038118">"Votre tablette désactivera les données cellulaires lorsqu\'elle atteindra la limite que vous définissez.\n\nComme c\'est votre tablette qui mesure la consommation des données, et que votre fournisseur de services peut utiliser un système de mesure différent, nous vous conseillons d\'utiliser une limite plus basse."</string>
<string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"Votre téléphone désactivera les données cellulaires lorsqu\'il atteindra la limite que vous définissez.\n\nComme c\'est votre téléphone qui mesure la consommation des données, et que votre fournisseur de services peut utiliser un système de mesure différent, nous vous conseillons de définir une limite plus basse."</string>
- <string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Partagez votre appareil en ajoutant des utilisateurs. Chaque utilisateur dispose d\'un espace personnel sur votre appareil pour ses écrans d\'accueil personnalisés, ses comptes, ses applications, ses paramètres et plus encore."</string>
- <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Partagez votre tablette en ajoutant des utilisateurs. Chaque utilisateur dispose d\'un espace personnel sur votre tablette pour ses écrans d\'accueil personnalisés, ses comptes, ses applications, ses paramètres et plus encore."</string>
- <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Partagez votre téléphone en ajoutant des utilisateurs. Chaque utilisateur dispose d\'un espace personnel sur votre téléphone pour ses écrans d\'accueil personnalisés, ses comptes, ses applications, ses paramètres et plus encore."</string>
+ <string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Partagez votre appareil en ajoutant des utilisateurs. Chaque utilisateur dispose d\'un espace personnel sur votre appareil pour ses écrans d\'accueil personnalisés, ses comptes, ses applis, ses paramètres et plus encore."</string>
+ <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Partagez votre tablette en ajoutant des utilisateurs. Chaque utilisateur dispose d\'un espace personnel sur votre tablette pour ses écrans d\'accueil personnalisés, ses comptes, ses applis, ses paramètres et plus encore."</string>
+ <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Partagez votre téléphone en ajoutant des utilisateurs. Chaque utilisateur dispose d\'un espace personnel sur votre téléphone pour ses écrans d\'accueil personnalisés, ses comptes, ses applis, ses paramètres et plus encore."</string>
<string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Seul le propriétaire de la tablette peut gérer les utilisateurs."</string>
<string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Seul le propriétaire de la tablette peut gérer les utilisateurs."</string>
<string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Votre espace et vos données vont disparaître de cette tablette. Cette action est irréversible."</string>
@@ -365,9 +365,9 @@
<string name="audio_sharing_dialog_share_more_content" product="default" msgid="4517503016262565607">"La musique et les vidéos de ce téléphone peuvent être lues sur les écouteurs que vous connectez"</string>
<string name="audio_sharing_dialog_share_more_content" product="tablet" msgid="7742344946644657414">"La musique et les vidéos de cette tablette peuvent être lues sur les écouteurs que vous connectez"</string>
<string name="audio_sharing_dialog_share_more_content" product="device" msgid="3409470560712324580">"La musique et les vidéos de cet appareil peuvent être lues sur les écouteurs que vous connectez"</string>
- <string name="audio_streams_dialog_no_le_device_subtitle" product="default" msgid="1388450179345665604">"Pour écouter un flux audio, connectez d\'abord des écouteurs prenant en charge l\'application LE Audio à ce téléphone."</string>
- <string name="audio_streams_dialog_no_le_device_subtitle" product="tablet" msgid="6577207951269720001">"Pour écouter un flux audio, connectez d\'abord des écouteurs prenant en charge l\'application LE Audio à cette tablette."</string>
- <string name="audio_streams_dialog_no_le_device_subtitle" product="device" msgid="6192141045820029654">"Pour écouter un flux audio, connectez d\'abord des écouteurs prenant en charge l\'application LE Audio à cet appareil."</string>
+ <string name="audio_streams_dialog_no_le_device_subtitle" product="default" msgid="1388450179345665604">"Pour écouter un flux audio, connectez d\'abord des écouteurs prenant en charge l\'appli LE Audio à ce téléphone."</string>
+ <string name="audio_streams_dialog_no_le_device_subtitle" product="tablet" msgid="6577207951269720001">"Pour écouter un flux audio, connectez d\'abord des écouteurs prenant en charge l\'appli LE Audio à cette tablette."</string>
+ <string name="audio_streams_dialog_no_le_device_subtitle" product="device" msgid="6192141045820029654">"Pour écouter un flux audio, connectez d\'abord des écouteurs prenant en charge l\'appli LE Audio à cet appareil."</string>
<string name="audio_streams_dialog_unsupported_device_subtitle" product="default" msgid="4634360514260385687">"Ce téléphone ne prend pas en charge l\'appli LE Audio, et celle-ci est nécessaire pour effectuer la lecture des flux audio."</string>
<string name="audio_streams_dialog_unsupported_device_subtitle" product="tablet" msgid="234603191628345605">"Cette tablette ne prend pas en charge l\'appli LE Audio, et celle-ci est nécessaire pour effectuer la lecture des flux audio."</string>
<string name="audio_streams_dialog_unsupported_device_subtitle" product="device" msgid="6350485541420926260">"Cet appareil ne prend pas en charge l\'appli LE Audio, et celle-ci est nécessaire pour effectuer la lecture des flux audio."</string>
diff --git a/res-product/values-ka/strings.xml b/res-product/values-ka/strings.xml
index 3c7fef4..d87d5ad 100644
--- a/res-product/values-ka/strings.xml
+++ b/res-product/values-ka/strings.xml
@@ -179,15 +179,15 @@
<string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"სახით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს ტელეფონს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
<string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"სახით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს ტელეფონს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
<string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"სახით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს ტელეფონს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
- <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს ტაბლეტს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
- <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს ტაბლეტს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
- <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს ტაბლეტს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
- <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს მოწყობილობას, თუ მას დაკარგავთ ან მოგპარავენ."</string>
- <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს მოწყობილობას, თუ მას დაკარგავთ ან მოგპარავენ."</string>
- <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს მოწყობილობას, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+ <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს ტაბლეტს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+ <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს ტაბლეტს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+ <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს ტაბლეტს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+ <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს მოწყობილობას, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+ <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს მოწყობილობას, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+ <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს მოწყობილობას, თუ მას დაკარგავთ ან მოგპარავენ."</string>
<string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს ტელეფონს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
- <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს ტელეფონს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
- <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს ტელეფონს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+ <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს ტელეფონს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+ <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს ტელეფონს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
<string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"ამ მოქმედებით წაიშლება თითის ანაბეჭდის სურათები და თქვენს ტელეფონზე შენახული მოდელები, რომლებიც ასოცირებულია „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“-თან"</string>
<string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"ამ მოქმედებით წაიშლება თითის ანაბეჭდის სურათები და თქვენს ტაბლეტზე შენახული მოდელები, რომლებიც ასოცირებულია „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“-თან"</string>
<string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"ამ მოქმედებით წაიშლება თითის ანაბეჭდის სურათები და თქვენს მოწყობილობაზე შენახული მოდელები, რომლებიც ასოცირებულია „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“-თან"</string>
diff --git a/res-product/values-sq/strings.xml b/res-product/values-sq/strings.xml
index 96bfd3f..3f44329 100644
--- a/res-product/values-sq/strings.xml
+++ b/res-product/values-sq/strings.xml
@@ -179,24 +179,15 @@
<string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me fytyrë\".\n\nKodi PIN e mbron telefonin nëse të humbet apo ta vjedhin."</string>
<string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me fytyrë\".\n\nMotivi e mbron telefonin nëse të humbet apo ta vjedhin."</string>
<string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me fytyrë\".\n\nFjalëkalimi e mbron telefonin nëse të humbet apo ta vjedhin."</string>
- <!-- no translation found for lock_screen_pin_skip_biometrics_message (6016574209955764097) -->
- <skip />
- <!-- no translation found for lock_screen_pattern_skip_biometrics_message (5193008948766756870) -->
- <skip />
- <!-- no translation found for lock_screen_password_skip_biometrics_message (2157871617774498976) -->
- <skip />
- <!-- no translation found for lock_screen_pin_skip_biometrics_message (3023595865822720071) -->
- <skip />
- <!-- no translation found for lock_screen_pattern_skip_biometrics_message (3039110875534893916) -->
- <skip />
- <!-- no translation found for lock_screen_password_skip_biometrics_message (6506194961404887073) -->
- <skip />
- <!-- no translation found for lock_screen_pin_skip_biometrics_message (6614355211073480369) -->
- <skip />
- <!-- no translation found for lock_screen_pattern_skip_biometrics_message (969489650005656159) -->
- <skip />
- <!-- no translation found for lock_screen_password_skip_biometrics_message (2934343185175325368) -->
- <skip />
+ <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nKodi PIN e mbron tabletin nëse të humbet apo ta vjedhin."</string>
+ <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nMotivi e mbron tabletin nëse të humbet apo ta vjedhin."</string>
+ <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nFjalëkalimi e mbron tabletin nëse të humbet apo ta vjedhin."</string>
+ <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nKodi PIN e mbron pajisjen nëse të humbet apo ta vjedhin."</string>
+ <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nMotivi e mbron pajisjen nëse të humbet apo ta vjedhin."</string>
+ <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nFjalëkalimi e mbron pajisjen nëse të humbet apo ta vjedhin."</string>
+ <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nKodi PIN e mbron telefonin nëse të humbet apo ta vjedhin."</string>
+ <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nMotivi e mbron telefonin nëse të humbet apo ta vjedhin."</string>
+ <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nFjalëkalimi e mbron telefonin nëse të humbet apo ta vjedhin."</string>
<string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Kjo fshin imazhet e gjurmës së gishtit dhe modelin e lidhur me \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" që ruhen në telefonin tënd"</string>
<string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Kjo fshin imazhet e gjurmës së gishtit dhe modelin e lidhur me \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" që ruhen në tabletin tënd"</string>
<string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Kjo fshin imazhet e gjurmës së gishtit dhe modelin e lidhur me \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" që ruhen në pajisjen tënde"</string>
diff --git a/res/drawable/ic_zen_mode_action_change_icon.xml b/res/drawable/ic_zen_mode_action_change_icon.xml
deleted file mode 100644
index 4cf4167..0000000
--- a/res/drawable/ic_zen_mode_action_change_icon.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--
-Copyright (C) 2024 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:tint="?android:attr/colorControlNormal"
- android:viewportHeight="960"
- android:viewportWidth="960">
- <path
- android:fillColor="@android:color/white"
- android:pathData="M620,440Q645,440 662.5,422.5Q680,405 680,380Q680,355 662.5,337.5Q645,320 620,320Q595,320 577.5,337.5Q560,355 560,380Q560,405 577.5,422.5Q595,440 620,440ZM340,440Q365,440 382.5,422.5Q400,405 400,380Q400,355 382.5,337.5Q365,320 340,320Q315,320 297.5,337.5Q280,355 280,380Q280,405 297.5,422.5Q315,440 340,440ZM480,700Q548,700 603.5,661.5Q659,623 684,560L276,560Q301,623 356.5,661.5Q412,700 480,700ZM480,880Q397,880 324,848.5Q251,817 197,763Q143,709 111.5,636Q80,563 80,480Q80,397 111.5,324Q143,251 197,197Q251,143 324,111.5Q397,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,563 848.5,636Q817,709 763,763Q709,817 636,848.5Q563,880 480,880ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480ZM480,800Q614,800 707,707Q800,614 800,480Q800,346 707,253Q614,160 480,160Q346,160 253,253Q160,346 160,480Q160,614 253,707Q346,800 480,800Z" />
-</vector>
\ No newline at end of file
diff --git a/res/layout/advanced_bt_entity_sub.xml b/res/layout/advanced_bt_entity_sub.xml
index d29c34f..90ac456 100644
--- a/res/layout/advanced_bt_entity_sub.xml
+++ b/res/layout/advanced_bt_entity_sub.xml
@@ -17,21 +17,43 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:focusable="true"
android:orientation="vertical">
- <ImageView
- android:id="@+id/header_icon"
- android:layout_width="72dp"
- android:layout_height="72dp"
- android:layout_gravity="center_horizontal"
- android:antialias="true"
- android:background="@drawable/circle_outline"
- android:padding="8dp"
- android:scaleType="fitCenter"/>
+ <FrameLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal">
+ <ImageView
+ android:id="@+id/header_icon"
+ android:layout_width="72dp"
+ android:layout_height="72dp"
+ android:layout_gravity="center"
+ android:antialias="true"
+ android:background="@drawable/circle_outline"
+ android:padding="8dp"
+ android:scaleType="fitCenter" />
+
+ <com.google.android.material.progressindicator.CircularProgressIndicator
+ android:id="@+id/battery_ring"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:indeterminate="false"
+ app:trackColor="@android:color/transparent"
+ app:indicatorColor="@color/bluetooth_battery_ring_indicator_color"
+ app:trackThickness="4dp"
+ app:indicatorSize="76dp"
+ app:indicatorInset="0dp"
+ app:trackCornerRadius="2dp"
+ android:max="100"
+ android:visibility="gone" />
+
+ </FrameLayout>
<TextView
android:id="@+id/header_title"
diff --git a/res/layout/bluetooth_pin_confirm.xml b/res/layout/bluetooth_pin_confirm.xml
index fb3435b..9387d5d 100644
--- a/res/layout/bluetooth_pin_confirm.xml
+++ b/res/layout/bluetooth_pin_confirm.xml
@@ -20,13 +20,13 @@
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
- android:layout_width="match_parent">
+ android:layout_width="match_parent"
+ android:paddingTop="@dimen/bluetooth_dialog_padding_top">
<LinearLayout
android:paddingStart="16dip"
android:layout_height="match_parent"
android:layout_width="match_parent"
- android:layout_marginTop="@dimen/bluetooth_dialog_padding_top"
android:orientation="vertical">
<TextView
@@ -85,7 +85,7 @@
android:orientation="horizontal">
<LinearLayout
android:layout_height="wrap_content"
- android:layout_width="wrap_content"
+ android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginEnd="10dp"
android:orientation="vertical">
@@ -105,7 +105,6 @@
android:id="@+id/phonebook_sharing_message_confirm_pin"
android:layout_width="wrap_content"
android:layout_height="48dp"
- android:layout_weight="0"
android:gravity="center_vertical"
android:contentDescription="@string/bluetooth_pairing_phonebook_toggle_text"
android:switchMinWidth="48dp" />
diff --git a/res/layout/modes_edit_done_button.xml b/res/layout/modes_edit_done_button.xml
new file mode 100644
index 0000000..dc1f54d
--- /dev/null
+++ b/res/layout/modes_edit_done_button.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <Button
+ android:id="@+id/done"
+ android:text="@string/done"
+ style="@style/ActionPrimaryButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end"
+ android:layout_marginEnd="20dp"
+ />
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/modes_edit_name.xml b/res/layout/modes_edit_name.xml
new file mode 100644
index 0000000..0b086c7
--- /dev/null
+++ b/res/layout/modes_edit_name.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+ <EditText
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:id="@android:id/edit"
+ android:maxLines="1"
+ android:inputType="text|textCapSentences"
+ android:imeOptions="actionDone"
+ android:selectAllOnFocus="true"
+ android:hint="@string/zen_mode_edit_name_hint" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/modes_set_schedule_layout.xml b/res/layout/modes_set_schedule_layout.xml
index 5758cfb..ebb349e 100644
--- a/res/layout/modes_set_schedule_layout.xml
+++ b/res/layout/modes_set_schedule_layout.xml
@@ -30,63 +30,78 @@
android:paddingBottom="24dp">
<!-- Start time & end time row -->
- <LinearLayout
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="fill_horizontal"
android:orientation="horizontal">
- <!-- Start time: title (non-clickable preference), time setter -->
- <LinearLayout
- android:layout_width="0dp"
+ <!-- Start time title (non-clickable preference) -->
+ <TextView
+ android:id="@+id/start_time_label"
+ android:clickable="false"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:orientation="vertical">
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintEnd_toStartOf="@+id/guideline"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constrainedWidth="true"
+ app:layout_constraintHorizontal_bias="0"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
+ android:text="@string/zen_mode_start_time" />
- <TextView
- android:id="@+id/start_time_label"
- android:clickable="false"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
- android:text="@string/zen_mode_start_time" />
-
- <TextView
- android:id="@+id/start_time"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
- android:textColor="?android:attr/colorAccent"
- android:textSize="40sp" />
-
- </LinearLayout>
-
- <!-- End time: title (non-clickable preference), time setter -->
- <LinearLayout
- android:layout_width="0dp"
+ <!-- Start time display + setter -->
+ <TextView
+ android:id="@+id/start_time"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:orientation="vertical">
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/start_time_label"
+ app:layout_constraintEnd_toStartOf="@+id/guideline"
+ app:layout_constrainedWidth="true"
+ app:layout_constraintHorizontal_bias="0"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
+ android:textColor="?android:attr/colorAccent"
+ android:textSize="40sp" />
- <TextView
- android:id="@+id/end_time_label"
- android:clickable="false"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
- android:text="@string/zen_mode_end_time" />
+ <!-- Center boundary to make sure each only expands to take up at most half the space -->
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/guideline"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.5" />
- <TextView
- android:id="@+id/end_time"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
- android:textColor="?android:attr/colorAccent"
- android:textSize="40sp" />
+ <!-- End time title (non-clickable preference), left-aligned to edge of time display -->
+ <TextView
+ android:id="@+id/end_time_label"
+ android:clickable="false"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="@+id/end_time"
+ app:layout_constraintStart_toEndOf="@+id/guideline"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constrainedWidth="true"
+ app:layout_constraintHorizontal_bias="0"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
+ android:text="@string/zen_mode_end_time" />
- </LinearLayout>
+ <!-- End time setter; right-aligned -->
+ <TextView
+ android:id="@+id/end_time"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:layout_constraintTop_toBottomOf="@+id/end_time_label"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/guideline"
+ app:layout_constrainedWidth="true"
+ app:layout_constraintHorizontal_bias="1"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
+ android:textColor="?android:attr/colorAccent"
+ android:textSize="40sp" />
- </LinearLayout>
+ </androidx.constraintlayout.widget.ConstraintLayout>
<!-- Schedule duration display row -->
<LinearLayout
diff --git a/res/layout/pointer_icon_stroke_style_layout.xml b/res/layout/pointer_icon_stroke_style_layout.xml
new file mode 100644
index 0000000..acf919a
--- /dev/null
+++ b/res/layout/pointer_icon_stroke_style_layout.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ Copyright 2024 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:orientation="vertical"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart">
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/pointer_stroke_style_padding"
+ android:text="@string/pointer_stroke_style"
+ android:textAlignment="viewStart"
+ android:textAppearance="?android:attr/textAppearanceListItem" />
+
+ <RadioGroup
+ android:id="@+id/button_holder"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:layout_marginTop="@dimen/pointer_stroke_style_padding"
+ android:layout_marginBottom="@dimen/pointer_stroke_style_padding"
+ android:padding="@dimen/pointer_stroke_style_padding">
+ <RadioButton android:id="@+id/stroke_style_white"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="@dimen/pointer_stroke_style_padding"
+ android:text="@string/pointer_stroke_style_name_white"/>
+ <RadioButton android:id="@+id/stroke_style_black"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="@dimen/pointer_stroke_style_padding"
+ android:text="@string/pointer_stroke_style_name_black"/>
+ <RadioButton android:id="@+id/stroke_style_none"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="@dimen/pointer_stroke_style_padding"
+ android:text="@string/pointer_stroke_style_name_none"/>
+ </RadioGroup>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/private_space_education_screen.xml b/res/layout/private_space_education_screen.xml
index 4df92b7..3afe7f9 100644
--- a/res/layout/private_space_education_screen.xml
+++ b/res/layout/private_space_education_screen.xml
@@ -53,7 +53,7 @@
android:src="@drawable/counter_1_24dp" />
<TextView
style="@style/PrivateSpaceBulletPointTextFontStyle"
- android:layout_toRightOf="@+id/lockIcon"
+ android:layout_toEndOf="@+id/lockIcon"
android:text="@string/private_space_separate_account_text"/>
</RelativeLayout>
<RelativeLayout
@@ -64,7 +64,7 @@
android:src="@drawable/counter_2_24dp" />
<TextView
style="@style/PrivateSpaceBulletPointTextFontStyle"
- android:layout_toRightOf="@+id/bellIcon"
+ android:layout_toEndOf="@+id/bellIcon"
android:text="@string/private_space_protected_lock_text"/>
</RelativeLayout>
<RelativeLayout
@@ -77,7 +77,7 @@
android:src="@drawable/counter_3_24dp" />
<TextView
style="@style/PrivateSpaceBulletPointTextFontStyle"
- android:layout_toRightOf="@+id/appsIcon"
+ android:layout_toEndOf="@+id/appsIcon"
android:text="@string/private_space_install_apps_text"/>
</RelativeLayout>
<TextView
@@ -94,7 +94,7 @@
android:src="@drawable/ic_private_space_edu_icon" />
<TextView
style="@style/PrivateSpaceBulletPointTextFontStyle"
- android:layout_toRightOf="@+id/eduIcon"
+ android:layout_toEndOf="@+id/eduIcon"
android:text="@string/private_space_apps_stopped_text"/>
</RelativeLayout>
<Space
@@ -112,13 +112,13 @@
android:id="@+id/info"
style="@style/PrivateSpaceBulletPointTextFontStyle"
android:textSize = "14sp"
- android:layout_toRightOf="@+id/infoIcon"
+ android:layout_toEndOf="@+id/infoIcon"
android:text="@string/private_space_apps_permission_text"/>
<TextView
android:id="@+id/learn_more"
style="@style/PrivateSpaceSetupSubHeaderStyle"
android:layout_below="@id/info"
- android:layout_alignLeft="@+id/info"
+ android:layout_alignStart="@+id/info"
android:paddingTop="24dp"
android:paddingLeft="16dp"
android:text="@string/private_space_learn_more_text"/>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index afeef0f..9356b78 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Dit is nodig omdat Identiteitkontrole aan is"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opsies"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Toeganklikheid"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fisiese sleutelbord"</string>
- <string name="show_ime" msgid="4334255501724746849">"Gebruik skermsleutelbord"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Hou dit op die skerm terwyl fisieke sleutelbord aktief is"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Hopsleutels"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Die sleutelbord ignoreer drukke van dieselfde sleutel wat binne <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms vinnig herhaal word"</string>
<string name="slow_keys" msgid="2891452895499690837">"Stadige sleutels"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Gaan in elk geval voort"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Kanselleer"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Vergrotinginstellings"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Skuif vergrootglas met 1 vinger"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Sleep 1 vinger om op die skerm rond te beweeg"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Skuif die vergrotingarea deur een vinger te sleep."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Skuif die vergrotingarea deur twee vingers te sleep."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Onbeskikbaar terwyl net ’n deel van die skerm vergroot word"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tik op \'n knoppie om te zoem"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zoem vinnig op die skerm in om inhoud groter te maak"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Zoem só in:</b><br/> {0,number,integer}. Gebruik kortpad om vergroting te begin<br/> {1,number,integer}. Tik op die skerm<br/> {2,number,integer}. Sleep 2 vingers om op die skerm rond te beweeg<br/> {3,number,integer}. Knyp met 2 vingers om die zoem te verstel<br/> {4,number,integer}. Gebruik kortpad om vergroting te stop<br/><br/> <b>Zoem só tydelik in:</b><br/> {0,number,integer}. Maak seker dat jou vergrotingtipe op volskerm gestel is<br/> {1,number,integer}. Gebruik kortpad om vergroting te begin<br/> {2,number,integer}. Raak en hou enige plek op die skerm<br/> {3,number,integer}. Sleep vinger om op die skerm rond te beweeg<br/> {4,number,integer}. Lig vinger om vergroting te stop"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Zoem só in:</b><br/> {0,number,integer}. Gebruik kortpad om vergroting te begin<br/> {1,number,integer}. Tik op die skerm<br/> {2,number,integer}. Sleep 2 vingers om op die skerm rond te beweeg<br/> {3,number,integer}. Knyp met 2 vingers om die zoem te verstel<br/> {4,number,integer}. Gebruik kortpad om vergroting te stop<br/><br/> Jy kan ook tydelik en meer inzoem."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Zoem só in:</b><br/> {0,number,integer}. Gebruik kortpad om vergroting te begin<br/> {1,number,integer}. Tik op die skerm<br/> {2,number,integer}. Sleep 1 of 2 vingers om op die skerm rond te beweeg<br/> {3,number,integer}. Knyp met 2 vingers om die zoem te verstel<br/> {4,number,integer}. Gebruik kortpad om vergroting te stop<br/><br/> Jy kan ook tydelik en meer inzoem."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Wanneer vergroting aangeskakel is, kan jy op jou skerm inzoem.\n\n"<b>"Om te zoem"</b>", moet jy vergroting begin en dan op enige plek op die skerm tik.\n"<ul><li>"Sleep 2 of meer vingers om te rollees"</li>\n<li>"Knyp 2 of meer vingers om zoem te verstel"</li></ul>\n\n<b>"Om tydelik te zoem"</b>", moet jy vergroting begin en dan enige plek op die skerm raak en hou.\n"<ul><li>"Sleep om op die skerm rond te beweeg"</li>\n<li>"Lig jou vinger op om uit te zoem"</li></ul>\n\n"Jy kan nie op die sleutelbord of die navigasiebalk inzoem nie."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Bladsy <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> van <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Toeganklikheidknoppiekortpad"</string>
@@ -2237,7 +2232,7 @@
<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>
- <string name="accessibility_button_fade_title" msgid="8081993897680588829">"Verdof wanneer dit nie gebruik word nie"</string>
+ <string name="accessibility_button_fade_title" msgid="8081993897680588829">"Verdof wanneer nie gebruik word nie"</string>
<string name="accessibility_button_fade_summary" msgid="7865950833524973709">"Verdof ná \'n paar sekondes sodat dit makliker is om jou skerm te sien"</string>
<string name="accessibility_button_opacity_title" msgid="4727355657530362289">"Deursigtigheid wanneer nie gebruik word nie"</string>
<string name="accessibility_button_low_label" msgid="4193015407828927741">"Deursigtig"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Skep ’n modus"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Gepasmaak"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Beperk onderbrekings"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Skakel Moenie steur nie aan"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Wekkers en mediaklanke kan onderbreek"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Stel ’n skedule"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Skedule"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> uur, <xliff:g id="MINUTES">%2$d</xliff:g> min."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Skakel outomaties aan"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Skedule"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Maak foon op sekere tye stil"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Stel Moenie Steur Nie-reëls"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"maak kennisgewing oop"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Laat toe dat kennisgewings gesluimer word"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Kennisgewingkol op appikoon"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Kennisgewingbondels"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Borrels"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Borrels"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Laat hierdie gesprek in \'n borrel verskyn"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alles"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Laat programme toe om te ignoreer"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Programme wat kan onderbreek"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Kies meer apps"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Houer"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Instellingspaneel"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Dwangrekenaarmodus"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Verplig eksperimentele rekenaarmodus op sekondêre skerms"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktiveer vryevormvensters"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Aktiveer steun vir vryevormvensters."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Aktiveer vryevormvensters op tweede skerm"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Aktiveer vryevormvensters slegs op sekondêre skerm."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktiveer nieveranderbare grootte in multivenster"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Laat programme met nieveranderbare grootte toe in multivenster"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Ignoreer gedwonge donkermodus"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Hierdie toestel se data-afdeling moet na ext4 omgeskakel word voordat die 16KB-ontwikkelaaropsie gebruik word. Die sagteware se integriteit kan nie in hierdie modus gewaarborg word nie, en enige data wat op die foon gestoor word terwyl die selflaaiprogram ontsluit is, is dalk in gevaar. Die aktivering van die 16KB-opsie sal daarna nog een herselflaai vereis. Sodra jy in hierdie modus is, kan jy heen en weer oorskakel tussen 4KB- en 16KB-modus met ’n enkele herselflaai. Sommige kenmerke sal gedeaktiveer word in hierdie modusse, so sommige apps sal dalk nie werk nie. Jy sal moet terugskakel na die 4KB-modus en dan die selflaaiprogram moet sluit wat ’n fabriekterugstelling op die toestel doen om die toestel na produksiemodus terug te neem. Jy moet die OEM-ontsluiting in Ontwikkelaaropsies deaktiveer nadat die toestel suksesvol in Android geselflaai het. Die toestel sal skoongevee word en die lêerstelsel sal ná bevestiging na ext4 verander word. Nadat dit voltooi is, moet jy terugkom om 16KB weer te aktiveer."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Vee alle data uit"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Kon nie herformateer en die data-afdeling na ext4 skoonvee nie."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Ontsluiting van selflaaiprogram is nodig"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Hierdie toestel moet die selflaaiprogram ontsluit hê voordat die 16KB-ontwikkelaaropsie gebruik word. Die sagteware se integriteit kan nie in hierdie modus gewaarborg word nie, en enige data wat op die foon gestoor word terwyl die selflaaiprogram ontsluit is, is dalk in gevaar. Alle gebruikerdata en -instellings sal skoongevee word wanneer 16KB-modus geaktiveer word. Sodra die selflaaiprogram ontsluit is, sal die aktivering van die 16KB-opsie twee herselflaaie vereis. Sodra jy in hierdie modus is, kan jy heen en weer oorskakel tussen 4KB- en 16KB-modus met ’n enkele herselflaai. Sommige kenmerke sal gedeaktiveer word in hierdie modusse, so sommige apps sal dalk nie werk nie. Jy sal moet terugskakel na die 4KB-modus en dan die toestel moet sluit met die OEM/selflaaiprogramslot (wat ’n fabriekterugstelling op die toestel doen) om die toestel na produksiemodus terug te neem. Ontsluit asseblief die selflaaiprogram en probeer weer. Jy kan instruksies sien oor hoe om dit te doen by <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Gebruik 4KB-bladsy-agnostiese modus"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Jy is in die 4KB-modus van die bladsy-agnostiese modus. Die sagteware se integriteit kan nie in hierdie modus gewaarborg word nie, en enige data wat op die foon gestoor word terwyl die selflaaiprogram ontsluit is, is dalk in gevaar. Sommige kenmerke sal gedeaktiveer word in hierdie modusse, so sommige apps sal dalk nie werk nie. Jy moet die selflaaiprogram van die toestel sluit om weer in die produksiemodus te gaan. Tik om meer te lees."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Jy is in die 4KB-modus van die bladsy-agnostiese modus. Die sagteware se integriteit kan nie in hierdie modus gewaarborg word nie, en enige data wat op die foon gestoor word terwyl die selflaaiprogram ontsluit is, is dalk in gevaar. Sommige kenmerke sal gedeaktiveer word in hierdie modusse, so sommige apps sal dalk nie werk nie. Jy moet die selflaaiprogram van die toestel sluit om weer in die produksiemodus te gaan. Dit sal weer ’n fabriekterugstelling op die toestel doen en dit na produksie-instellings terugstel. Jy moet die OEM-ontsluiting in Ontwikkelaaropsies deaktiveer nadat die toestel suksesvol in Android geselflaai het. As die toestel nie in Android kon selflaai nie of onstabiel is, moet jy die toestel herflits met die jongste fabriekstelselkopie vanaf <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> of gebruik <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> en kies “Vee toestel skoon”, “Sluit selflaaiprogram” en “Verpligflits alle afdelings”."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Gebruik 16KB-bladsy-agnostiese modus"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Jy is in die 16 KB-modus van die niebladgebonde modus. Die sagteware se integriteit kan nie in hierdie modus gewaarborg word nie, en enige data wat op die foon gestoor word terwyl die selflaaiprogram ontsluit is, is dalk in gevaar. Sommige kenmerke sal gedeaktiveer word in hierdie modusse, so sommige apps sal dalk nie werk nie. Jy moet terugskakel na 4 KB-modus en dan die selflaaiprogram van die toestel sluit om weer in die produksiemodus te gaan. Tik om meer te lees."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Jy is in die 16 KB-modus van die niebladgebonde modus. Die sagteware se integriteit kan nie in hierdie modus gewaarborg word nie, en enige data wat op die foon gestoor word terwyl die selflaaiprogram ontsluit is, is dalk in gevaar. Sommige kenmerke sal gedeaktiveer word in hierdie modusse, so sommige apps sal dalk nie werk nie. Jy moet terugskakel na 4 KB-modus en dan die selflaaiprogram van die toestel sluit om weer in die produksiemodus te gaan. Dit sal weer ’n fabriekterugstelling op die toestel doen en dit na produksie-instellings terugstel. Jy moet die OEM-ontsluiting in Ontwikkelaaropsies deaktiveer nadat die toestel suksesvol in Android geselflaai het. As die toestel nie in Android kon selflaai nie of onstabiel is, moet jy die toestel herflits met die jongste fabriekstelselkopie vanaf <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> of gebruik <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> en kies “Vee toestel skoon”, “Sluit selflaaiprogram” en “Verpligflits alle afdelings”."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB-bladsy-agnostiese modus"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Lees meer"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Foutverslaghanteerder"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Kies wat jy op jou skerm sal sien wanneer jou tablet gedok is. Jou toestel kan meer energie gebruik wanneer ’n sluimerskerm gebruik word."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Pasmaak"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Pasmaak <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"\'n Herselflaai word vereis om vryevormsteun te aktiveer."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"\'n Herselflaai word vereis om rekenaarmodus vir sekondêre skerms te verplig."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"’n Herselflaai word vereis om steun vir vorige vryevormvensters te aktiveer."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"’n Herselflaai word vereis om steun vir vryevormvensters te verander."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"’n Herselflaai word vereis om vryevormvensters op sekondêre skerms te verplig."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Herselflaai nou"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Herselflaai later"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Ruimtelike Oudio"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index e7a5b76..a09db50 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"መልክ እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"መልክ፣ የጣት አሻራ እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"መልክ፣ የጣት አሻራዎች እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"የማንነት ፍተሻ ስለበራ ይህ ያስፈልጋል"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"አማራጮች"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ተደራሽነት"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"አካላዊ ቁልፍ ሰሌዳ"</string>
- <string name="show_ime" msgid="4334255501724746849">"የማያ ገፅ የቁልፍ ሰሌዳ ይጠቀሙ"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"አካላዊ የቁልፍ ሰሌዳ ገቢር ሆኖ ሳለ በማያ ገፅ ላይ አቆየው"</string>
<string name="bounce_keys" msgid="7419450970351743904">"የመንጠሪያ ቁልፎች"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"ቁልፍ ሰሌዳው በ<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ሚሊሰከንድ ውስጥ ተመሳሳዩ ቁልፍ በፍጥነት መጫኑን ችላ ይላል"</string>
<string name="slow_keys" msgid="2891452895499690837">"ቀርፋፋ ቁልፎች"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"ሁነታ ይፍጠሩ"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ብጁ"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"መቆራረጦችን ይገድቡ"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"አትረብሽን አብራ"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ማንቂያዎች እና የሚዲያ ድምፆች ሊያቋርጡ ይችላሉ"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"መርሐግብር ያቀናብሩ"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"መርሐግብር"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ሰዓት፣ <xliff:g id="MINUTES">%2$d</xliff:g> ደ"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"በራስ-ሰር አብራ"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"መርሐግብር"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"በተወሰኑ ሰዓታት ላይ የስልክ ድምፅ አጥፋ"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"የአትረብሽ ደንቦችን ያቀናብሩ"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"ማሳወቂያን ክፈት"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"የማሳወቂያ ማሸለብን ፍቀድ"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"የማሳወቂያ ነቁጥ በመተግበሪያ አዶ ላይ"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"የማሳወቂያ ቅርቅቦች"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"አረፋዎች"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"አረፋዎች"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ይህን ውይይት በአረፋ አድርግ"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ሁሉም"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"መተግበሪያዎች እንዲሽሩ ይፍቀዱ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"አቋርጠው መግባት የሚችሉ መተግበሪያዎች"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ተጨማሪ መተግበሪያዎችን ይምረጡ"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"መያዣ"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ባትሪ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"የቅንብሮች ፓነል"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"የዴስክቶፕ ሁነታን አስገድድ"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"በሁለተኛ ማሳያዎች ላይ የሙከራ ዴስክቶፕ ሁነታን አስገድድ"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"የነጻ ቅርጽ መስኮቶችን ያንቁ"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"የነጻ ቅርጽ መስኮቶች ድጋፍ ያንቁ።"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"በሁለተኛ ማሳያ ላይ የነጻ ቅርጽ በመስኮት ማሳየትን አንቃ"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"የነጻ ቅርጽ መስኮቶችን በሁለተኛ ማሳያ ላይ ብቻ አንቃ።"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"በብዝሃ-መስኮት ውስጥ መጠን መቀየር የማይቻለውን አንቃ"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"መጠን መቀየር የማይቻሉትን መተግበሪያዎች በብዝሃ-መስኮት ውስጥ እንዲሆኑ ይፈቅዳል"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"አስገዳጅ ጨለማን ሻር"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"የ16 ኪባ ገንቢ አማራጭን ከመጠቀምዎ በፊት የዚህ መሣሪያ የውሂብ ክፍልፍል ወደ ext4 መቀየር አለበት። የሶፍትዌር ታማኝነት በዚህ ሁነታ ሊረጋገጥ አይችልም፣ እና bootloader ክፍት ሆኖ ሳለ በስልኩ ላይ የተከማቸ ማንኛውም መረጃ ለአደጋ ሊጋለጥ ይችላል። የ16 ኪባ አማራጩን ማግበር ከዚህ በኋላ አንድ ተጨማሪ ዳግም ማስነሳት ያስፈልገዋል። አንዴ በዚህ ሁነታ ላይ ከሆኑ፣ በአንድ ዳግም ማስነሳት ከ4 ኪባ ወደ 16 ኪባ ሁነታ መካከል መቀያየር ይችላሉ። አንዳንድ ባህሪያት በእነዚህ ሁነታዎችላይ ይሰናከላሉ፣ ስለዚህ አንዳንድ መተግበሪያዎች ላይሰሩ ይችላሉ። መሣሪያውን ወደ የምርት ሁነታ መመለስ እንዲችሉ ወደ የ4 ኪባ ሁነታ መመለስ እና bootloaderን መቆለፍ ይኖርብዎታል፣ ይህም መሣሪያውን ወደ ፋብሪካ ዳግም ያስጀምረዋል። መሣሪያው በተሳካ ሁኔታ ወደ Android ከተነሳ በኋላ በገንቢ አማራጮች ውስጥ የOEM መክፈቻን ያሰናክሉ። መሣሪያው ይጠረጋል እና የፋይል ሥርዓቱ ከተረጋገጠ በኋላ ወደ ext4 ይቀየራል። ይህ ከተጠናቀቀ በኋላ እባክዎ 16 ኪባን እንደገና ለማንቃት ይመለሱ።"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"ሁሉንም ውሂብ ደምስስ"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ቅርጸት መሥራት እና የውሂብ ክፍልፋይን ወደ ext4 መጥረግ አልተሳካም።"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"በBootloader መክፈት ያስፈልጋል"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"ይህ መሣሪያ የ16 ኪባ ገንቢ አማራጩን ከመጠቀሙ በፊት bootloaderን መክፈት አለበት። የሶፍትዌር ታማኝነት በዚህ ሁነታ ሊረጋገጥ አይችልም፣ እና bootloader ክፍት ሆኖ ሳለ በስልኩ ላይ የተከማቸ ማንኛውም መረጃ ለአደጋ ሊጋለጥ ይችላል። የ16 ኪባ ሁነታ ሲነቃ ሁሉም የተጠቃሚ ውሂብ እና ቅንብሮች ይጠረጋሉ። አንዴ bootloader ከተከፈተ በኋላ የ16 ኪባ አማራጩን ለማንቃት ሁለት ዳግም ማስነሳት ያስፈልገዋል። አንዴ በዚህ ሁነታ ላይ ከሆኑ፣ በአንድ ዳግም ማስነሳት ከ4 ኪባ ወደ 16 ኪባ ሁነታ መካከል መቀያየር ይችላሉ። አንዳንድ ባህሪያት በእነዚህ ሁነታዎችላይ ይሰናከላሉ፣ ስለዚህ አንዳንድ መተግበሪያዎች ላይሰሩ ይችላሉ። መሣሪያውን ወደ የምርት ሁነታ መመለስ እንዲችሉ ወደ የ4 ኪባ ሁነታ መመለስ እና OEM/bootloader መቆለፍ ይኖርብዎታል፣ ይህም መሣሪያውን ወደ (ፋብሪካ ዳግም ያስጀምረዋል)። እባክዎ bootloaderን ይክፈቱ እና እንደገና ይሞክሩ። <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> ላይ ይህንን እንዴት እንደሚያደርጉ መመሪያዎችን ማየት ይችላሉ"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"የ4 ኪባ ለሁሉም ገጽ ተስማሚ ሁነታን በመጠቀም ላይ"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"የሁሉም ገጽ ተስማሚ ሁነታ 4 ኪባ ሁነታ ውስጥ ነዎት። የሶፍትዌር ታማኝነት በዚህ ሁነታ ሊረጋገጥ አይችልም፣ እና bootloader ክፍት ሆኖ ሳለ በስልኩ ላይ የተከማቸ ማንኛውም መረጃ ለአደጋ ሊጋለጥ ይችላል። አንዳንድ ባህሪያት በእነዚህ ሁነታዎችላይ ይሰናከላሉ፣ ስለዚህ አንዳንድ መተግበሪያዎች ላይሰሩ ይችላሉ። ወደ የምርት ሁነታ እንደገና ለመግባት የመሣሪያውን bootloader መቆለፍ አለብዎት። የበለጠ ለማንበብ መታ ያድርጉ።"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"የሁሉም ገጽ ተስማሚ ሁነታ 4 ኪባ ሁነታ ውስጥ ነዎት። የሶፍትዌር ታማኝነት በዚህ ሁነታ ሊረጋገጥ አይችልም፣ እና bootloader ክፍት ሆኖ ሳለ በስልኩ ላይ የተከማቸ ማንኛውም መረጃ ለአደጋ ሊጋለጥ ይችላል። አንዳንድ ባህሪያት በእነዚህ ሁነታዎችላይ ይሰናከላሉ፣ ስለዚህ አንዳንድ መተግበሪያዎች ላይሰሩ ይችላሉ። ወደ የምርት ሁነታ እንደገና ለመግባት የመሣሪያውን bootloader መቆለፍ አለብዎት። ይህ መሣሪያውን ወደ የፋብሪካ ዳግም ያስጀምረዋል እና የምርት ቅንብሮችን ወደነበሩበት ይመልሳል። መሣሪያው በተሳካ ሁኔታ ወደ Android ከተነሳ በኋላ በገንቢ አማራጮች ውስጥ የOEM መክፈቻን ያሰናክሉ። መሣሪያው ወደ Android መነሳት ካልቻለ ወይም ያልተረጋጋ ከሆነ መሣሪያውን <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/ምስሎች</a> በመጡ የቅርብ ጊዜዎቹ የፋብሪካ ምስሎች ዳግም ፍላሽ ያድርጉት ወይም <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ይጠቀሙ እና «መሣሪያን ጥረግ»፣ «Bootloaderን ቆልፍ» እና «የሁሉንም ክፍልፋዮች ፍላሽ አስገድድ» የሚለውን ይምረጡ።"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"የ16 ኪባ ለሁሉም ገጽ ተስማሚ ሁነታን በመጠቀም ላይ"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"የገጽ-አግኖስቲክ ሁነታ የ16 ኪባ ሁነታ ላይ ነዎት። የሶፍትዌር ታማኝነት በዚህ ሁነታ ሊረጋገጥ አይችልም፣ እና bootloader ክፍት ሆኖ ሳለ በስልኩ ላይ የተከማቸ ማንኛውም ውሂብ ለአደጋ ሊጋለጥ ይችላል። አንዳንድ ባህሪያት በእነዚህ ሁነታዎች ላይ ይሰናከላሉ፣ ስለዚህ አንዳንድ መተግበሪያዎች ላይሰሩ ይችላሉ። ወደ የምርት ሁነታ እንደገና ለመግባት ወደ የ4ኪባ ሁነታ መመለስ እና ከዚያ የመሣሪያውን bootloader መቆለፍ አለብዎት። የበለጠ ለማንበብ መታ ያድርጉ።"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"የገጽ-አግኖስቲክ ሁነታ የ16 ኪባ ሁነታ ላይ ነዎት። የሶፍትዌር ታማኝነት በዚህ ሁነታ ሊረጋገጥ አይችልም፣ እና bootloader ክፍት ሆኖ ሳለ በስልኩ ላይ የተከማቸ ማንኛውም ውሂብ ለአደጋ ሊጋለጥ ይችላል። አንዳንድ ባህሪያት በእነዚህ ሁነታዎች ላይ ይሰናከላሉ፣ ስለዚህ አንዳንድ መተግበሪያዎች ላይሰሩ ይችላሉ። ወደ የምርት ሁነታ እንደገና ለመግባት ወደ የ4ኪባ ሁነታ መመለስ እና ከዚያ የመሣሪያውን bootloader መቆለፍ አለብዎት። ይህ መሣሪያውን ወደ የፋብሪካ ዳግም ያስጀምረዋል እና የምርት ቅንብሮችን ወደነበሩበት ይመልሳል። መሣሪያው በተሳካ ሁኔታ ወደ Android ከተነሳ በኋላ በገንቢ አማራጮች ውስጥ የOEM መክፈቻን ያሰናክሉ። መሣሪያው ወደ Android መነሳት ካልቻለ ወይም ያልተረጋጋ ከሆነ መሣሪያውን ከ<a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> በመጡ የቅርብ ጊዜዎቹ የፋብሪካ ምስሎች ዳግም ፍላሽ ያድርጉት ወይም <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ይጠቀሙ እና «መሣሪያን ጥረግ»፣ «Bootloaderን ቆልፍ» እና «የሁሉንም ክፍልፋዮች ፍላሽ አስገድድ» የሚለውን ይምረጡ።"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"የ16 ኪባ ለሁሉም ገጽ ተስማሚ ሁነታ"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"ተጨማሪ ያንብቡ"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"የሳንካ ሪፖርት ተቆጣጣሪ"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"ጡባዊዎ ሲተከል በማያ ገፅዎ ላይ የሚያዩትን ይምረጡ። የማያ ገፅ ማቆያ ሥራ ላይ ሲውል መሣሪያዎ የበለጠ ኃይል ሊጠቀም ይችላል።"</string>
<string name="customize_button_title" msgid="1110284655990203359">"አብጅ"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> አብጅ"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"የነጻ ቅርጽ ድጋፍን ለማንቃት ዳግም ማስነሳት ያስፈልጋል።"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"የዴስክቶፕ ሁነታን በሁለተኛ ደረጃ ማሳያዎች ላይ ለማስገደድ ዳግም ማስነሳት ያስፈልጋል።"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"የቆየ በነጻ ቅርጽ በመስኮት የማሳየት ድጋፍን ለማንቃት ዳግም ማስነሳት ያስፈልጋል።"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"የነጻ ቅርጽ በመስኮት የማሳየት ድጋፍን ለመለወጥ ዳግም ማስነሳት ያስፈልጋል።"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"በሁለተኛ ማሳያዎች ላይ የነጻ ቅርጽ በመስኮት ማሳየትን ለማስገደድ ዳግም ማስነሳት ያስፈልጋል።"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ዳግም አስነሳ"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"በኋላ ዳግም አስነሳ"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ከባቢያዊ ኦዲዮ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 8fa7b11..058cf2e 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"تمت إضافة وجه و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"تمت إضافة وجه وبصمة إصبع و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"تمت إضافة وجه وبصمات أصابع و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"هذا الإجراء مطلوب عندما تكون ميزة \"التحقّق من الهوية\" مفعَّلة"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"الخيارات"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"تسهيل الاستخدام"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"لوحة المفاتيح الخارجية"</string>
- <string name="show_ime" msgid="4334255501724746849">"استخدام لوحة المفاتيح على الشاشة"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"استمرار عرضها على الشاشة عندما تكون لوحة المفاتيح الخارجية متصلة"</string>
<string name="bounce_keys" msgid="7419450970351743904">"تجاهُل النقرات المتكرّرة"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"تتجاهل لوحة المفاتيح الضغطات المتكررة بسرعة على المفتاح نفسه خلال <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ملي ثانية"</string>
<string name="slow_keys" msgid="2891452895499690837">"المفاتيح البطيئة"</string>
@@ -2234,7 +2233,7 @@
<string name="accessibility_button_location_title" msgid="7182107846092304942">"الموقع"</string>
<string name="accessibility_button_size_title" msgid="5785110470538960881">"حجم الزر"</string>
<string name="accessibility_button_fade_title" msgid="8081993897680588829">"تلاشي الزر عند عدم استخدامه"</string>
- <string name="accessibility_button_fade_summary" msgid="7865950833524973709">"يتلاشى الزر بعد بضع ثوانٍ، ما يسهِّل عليك رؤية الشاشة"</string>
+ <string name="accessibility_button_fade_summary" msgid="7865950833524973709">"تلاشي الزر بعد بضع ثوانٍ، ما يسهِّل عليك رؤية الشاشة"</string>
<string name="accessibility_button_opacity_title" msgid="4727355657530362289">"شفافية الزر عند عدم استخدامه"</string>
<string name="accessibility_button_low_label" msgid="4193015407828927741">"شفاف"</string>
<string name="accessibility_button_high_label" msgid="9138077512008190896">"غير شفاف"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"إنشاء وضع"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"مخصَّص"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"الحد من المقاطعات"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"تفعيل ميزة \"عدم الإزعاج\""</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"السماح للمنبهات وأصوات الوسائط بمقاطعة عمل الميزة"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ضبط جدول زمني"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"الجدول الزمني"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ساعة و<xliff:g id="MINUTES">%2$d</xliff:g> دقيقة"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"التفعيل تلقائيًا"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"الجدول الزمني"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"كتم صوت الهاتف في أوقات معيّنة"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"تعيين قواعد عدم الإزعاج"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"فتح الإشعار"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"السماح بتأجيل الإشعارات"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"نقطة الإشعار على رموز التطبيقات"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"حِزم الإشعارات"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"فقاعات المحادثات"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"فقاعات المحادثات"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"إظهار هذه المحادثة كفقاعة"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"كل التطبيقات"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"السماح للتطبيقات بإلغاء وضع \"عدم الإزعاج\""</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"التطبيقات التي يمكنها مقاطعة عمل الميزة"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"اختيار مزيد من التطبيقات"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"الحافظة"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"البطارية"</string>
<string name="settings_panel_title" msgid="346363079938069215">"لوحة الإعدادات"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"فرض وضع سطح المكتب"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"فرض وضع سطح المكتب التجريبي على شاشات العرض الثانوية"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"تفعيل النوافذ الحرة"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"سيتم تفعيل عرض النوافذ الحرة."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"تفعيل عرض النوافذ الحرة على شاشة عرض أخرى"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"سيتم تفعيل النوافذ الحرة فقط على شاشة عرض ثانوية."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"استخدام التطبيقات التي لا يتغير حجمها في النوافذ المتعددة"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"السماح باستخدام التطبيقات التي لا يتغير حجمها في النوافذ المتعددة"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"إلغاء ميزة فرض تعتيم الشاشة"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"يجب تحويل قسم البيانات في هذا الجهاز إلى نظام الملفات ext4 لتتمكّن من استخدام الوضع ١٦ كيلوبايت ضِمن خيارات المطوِّرين. وفي هذا الوضع، لا يمكن ضمان سلامة برنامج النظام. وعندما يكون برنامج الإقلاع غير مقفل، قد تصبح بياناتك المخزَّنة على الهاتف معرَّضة للخطر. لتفعيل الخيار ١٦ كيلوبايت، يجب إعادة تشغيل الجهاز مرة أخرى بعد ذلك. بعد تفعيل هذا الوضع، يمكنك التبديل بين الوضعَين ٤ كيلوبايت و١٦ كيلوبايت من خلال إعادة تشغيل الجهاز لمرّة واحدة. سيتم إيقاف بعض الميزات في هذَين الوضعَين، وبالتالي قد لا تعمل بعض التطبيقات. لإعادة الجهاز إلى وضع الإنتاج، عليك التبديل مرة أخرى إلى الوضع ٤ كيلوبايت وقفل برنامج الإقلاع، وسيؤدي ذلك إلى إعادة ضبط الجهاز على الإعدادات الأصلية. بعد تشغيل نظام Android على الجهاز بنجاح، أوقِف الإعداد \"فتح قفل المصنّع الأصلي للجهاز\" ضِمن \"خيارات المطوّرين\". بعد التأكيد، سيتم حجب بيانات الجهاز وتغيير نظام الملفات إلى ext4. بعد إتمام هذه الخطوات، يُرجى إعادة تفعيل الوضع ١٦ كيلوبايت."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"محو جميع البيانات"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"تعذَّر حجب قسم البيانات وإعادة تنسيقه إلى ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"يجب فتح قفل برنامج الإقلاع"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"يجب فتح قفل برنامج الإقلاع على هذا الجهاز قبل استخدام الوضع 16 كيلوبايت ضِمن خيارات المطوِّرين. وفي هذا الوضع، لا يمكن ضمان سلامة برنامج النظام. وعندما يكون برنامج الإقلاع غير مقفل، قد تصبح بياناتك المخزَّنة على الهاتف معرَّضة للخطر. وعند تفعيل الوضع 16 كيلوبايت، سيتم حجب كل بيانات المستخدم وإعداداته. بعد فتح قفل برنامج الإقلاع، سيكون عليك إعادة تشغيل الجهاز مرّتين لتفعيل الخيار 16 كيلوبايت. بعد تفعيل هذا الوضع، يمكنك التبديل بين الوضعَين 4 كيلوبايت و16 كيلوبايت من خلال إعادة تشغيل الجهاز لمرّة واحدة. سيتم إيقاف بعض الميزات في هذَين الوضعَين، وبالتالي قد لا تعمل بعض التطبيقات. لإعادة الجهاز إلى وضع الإنتاج، عليك التبديل مرة أخرى إلى الوضع 4 كيلوبايت وقفل برنامج الإقلاع أو إعدادات المصنّع الأصلي للجهاز، وسيؤدي ذلك إلى إعادة ضبط الجهاز على الإعدادات الأصلية. يُرجى فتح قفل برنامج الإقلاع ثم إعادة المحاولة. يمكنك الاطّلاع على تعليمات حول كيفية تنفيذ هذا الإجراء من خلال الانتقال إلى: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"استخدام الوضع ٤ كيلوبايت غير المستند إلى حجم الصفحة"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"جهازك الآن في الوضع ٤ كيلوبايت ضِمن الوضع غير المستند إلى حجم الصفحة. وفي هذا الوضع، لا يمكن ضمان سلامة برنامج النظام. وعندما يكون برنامج الإقلاع غير مقفل، قد تصبح بياناتك المخزَّنة على الهاتف معرَّضة للخطر. سيتم إيقاف بعض الميزات في هذَين الوضعَين، وبالتالي قد لا تعمل بعض التطبيقات. لإعادة تفعيل وضع الإنتاج، عليك قفل برنامج إقلاع الجهاز. انقر لقراءة المزيد."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"جهازك الآن في الوضع ٤ كيلوبايت ضِمن الوضع غير المستند إلى حجم الصفحة. وفي هذا الوضع، لا يمكن ضمان سلامة برنامج النظام. وعندما يكون برنامج الإقلاع غير مقفل، قد تصبح بياناتك المخزَّنة على الهاتف معرَّضة للخطر. سيتم إيقاف بعض الميزات في هذَين الوضعَين، وبالتالي قد لا تعمل بعض التطبيقات. لإعادة تفعيل وضع الإنتاج، عليك قفل برنامج إقلاع الجهاز. سيؤدي هذا الإجراء إلى إعادة ضبط الجهاز على الإعدادات الأصلية لوضع الإنتاج. بعد تشغيل نظام Android على الجهاز بنجاح، أوقِف الإعداد \"فتح قفل المصنّع الأصلي للجهاز\" ضِمن \"خيارات المطوّرين\". إذا تعذَّر تشغيل نظام Android أو كان يعمل بشكل غير مستقر، عليك إعادة تثبيت أحدث نسخ برامج الجهة المصنِّعة من خلال <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> أو <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>، وتحديد الخيارات التالية: \"حجب بيانات الجهاز\" (Wipe Device)، و\"قفل برنامج الإقلاع\" (Lock Bootloader)، و\"فرض تثبيت البيانات في جميع الأقسام\" (Force Flash all partitions)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"استخدام الوضع ١٦ كيلوبايت غير المستند إلى حجم الصفحة"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"جهازك الآن في الوضع 16 كيلوبايت ضِمن الوضع غير المستند إلى حجم الصفحة. وفي هذا الوضع، لا يمكن ضمان سلامة برنامج النظام. وعندما يكون برنامج الإقلاع غير مقفل، قد تصبح بياناتك المخزَّنة على الهاتف معرَّضة للخطر. وسيتم إيقاف بعض الميزات في هذين الوضعين، وبالتالي قد لا تعمل بعض التطبيقات. لإعادة تفعيل وضع الإنتاج، عليك التبديل مرة أخرى إلى الوضع 4 كيلوبايت وقفل برنامج الإقلاع للجهاز. انقر لقراءة المزيد."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"جهازك الآن في الوضع 16 كيلوبايت ضِمن الوضع غير المستند إلى حجم الصفحة. وفي هذا الوضع، لا يمكن ضمان سلامة برنامج النظام. وعندما يكون برنامج الإقلاع غير مقفل، قد تصبح بياناتك المخزَّنة على الهاتف معرَّضة للخطر. وسيتم إيقاف بعض الميزات في هذين الوضعين، وبالتالي قد لا تعمل بعض التطبيقات. لإعادة تفعيل وضع الإنتاج، عليك التبديل مرة أخرى إلى الوضع 4 كيلوبايت وقفل برنامج الإقلاع للجهاز. سيؤدي هذا الإجراء إلى إعادة ضبط الجهاز على الإعدادات الأصلية لوضع الإنتاج. بعد تشغيل نظام Android على الجهاز بنجاح، أوقِف الإعداد \"فتح قفل المصنّع الأصلي للجهاز\" ضِمن \"خيارات المطوّرين\". إذا تعذَّر تشغيل نظام Android أو كان يعمل بشكل غير مستقر، عليك إعادة تثبيت أحدث نُسخ برامج الجهة المصنِّعة من خلال <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> أو استخدام <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>، وتحديد الخيارات التالية: \"حجب بيانات الجهاز\" (Wipe Device)، و\"قفل برنامج الإقلاع\" (Lock Bootloader)، و\"فرض تثبيت البيانات في جميع الأقسام\" (Force Flash all partitions)."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"الوضع 16 كيلوبايت غير المستند إلى حجم الصفحة"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"قراءة المزيد"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"معالِج تقارير الأخطاء"</string>
@@ -5188,8 +5190,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"اختَر ما تريد أن يظهر على شاشتك عندما يكون جهازك اللوحي في حالة إرساء. قد يستهلك جهازك قدرًا أكبر من الطاقة عند استخدام شاشة الاستراحة."</string>
<string name="customize_button_title" msgid="1110284655990203359">"تخصيص"</string>
<string name="customize_button_description" msgid="7440248477266126231">"تخصيص <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"يجب إعادة التشغيل لتفعيل النوافذ الحرة."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"يجب إعادة التشغيل لفرض وضع الكمبيوتر المكتبي على الشاشات الثانوية."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"يجب إعادة التشغيل لتفعيل عرض النوافذ الحرة القديمة."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"يجب إعادة التشغيل لتغيير إعدادات عرض النوافذ الحرة."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"يجب إعادة التشغيل لفرض عرض النوافذ الحرة على شاشات العرض الثانوية."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"إعادة التشغيل الآن"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"إعادة التشغيل لاحقًا"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"الصوت المكاني"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 472cf52..97ab432 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"মুখাৱয়ব আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"মুখাৱয়ব, ফিংগাৰপ্ৰিণ্ট আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"মুখাৱয়ব, ফিংগাৰপ্ৰিণ্ট আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"যিহেতু পৰিচয় পৰীক্ষা কৰাৰ সুবিধাটো অন হৈ আছে, এইটো আৱশ্যকীয়"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"বিকল্পসমূহ"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"সাধ্য সুবিধা"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"কায়িক কীব\'ৰ্ড"</string>
- <string name="show_ime" msgid="4334255501724746849">"অন-স্ক্ৰীন কীব’ৰ্ড ব্যৱহাৰ কৰক"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"কায়িক কীব’ৰ্ড সক্ৰিয় হৈ থাকিলে ইয়াক স্ক্ৰীনত ৰাখিব"</string>
<string name="bounce_keys" msgid="7419450970351743904">"বাউন্স কী"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"কীব’ৰ্ডে <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> এমএছৰ ভিতৰত একেটা কী ক্ষিপ্ৰতাৰে বাৰে বাৰে টিপাটো উপেক্ষা কৰে।"</string>
<string name="slow_keys" msgid="2891452895499690837">"ধীৰ গতিৰ কী"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"এটা ম’ড সৃষ্টি কৰক"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"কাষ্টম"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"বাধাবোৰ সীমিত কৰক"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"অসুবিধা নিদিব অন কৰক"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"এলাৰ্ম আৰু মিডিয়া ধ্বনিসমূহে ব্যাঘাত জন্মাব পাৰে"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"সময়সূচী ছেট কৰক"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"সময়সূচী"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ঘণ্টা, <xliff:g id="MINUTES">%2$d</xliff:g> মিনিট"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"স্বয়ংক্ৰিয়ভাৱে অন কৰক"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"সময়সূচী"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"নিৰ্দ্দিষ্ট সময়ৰ মূৰত ফ\'ন নিৰৱ কৰক"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"অসুবিধা নিদিবৰ নিয়ম ছেট কৰক"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"জাননী খোলক"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"জাননী স্নুজ কৰাৰ অনুমতি দিয়ক"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"এপ্ চিহ্নত জাননী বিন্দু"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"জাননীৰ বাণ্ডল"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"এই বাৰ্তালাপটো বাবল কৰক"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"আটাইবোৰ"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"এপক অ\'ভাৰৰাইডৰ অনুমতি দিয়ক"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ব্যাঘাত জন্মাব পৰা এপ্সমূহ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"অধিক এপ্ বাছনি কৰক"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"কে’ছ"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"বেটাৰী"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ছেটিঙৰ পেনেল"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"বলপূৰ্বক ডেস্কটপ ম’ড"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"দ্বিতীয় ডিছপ্লে’ত পৰীক্ষামূলক ডেস্কটপ ম’ড বলপূৰ্বকভাৱে প্ৰয়োগ কৰক"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"ফ্ৰীফৰ্ম ৱিণ্ড’ সক্ষম কৰক"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"ফ্ৰীফৰ্ম ৱিণ্ড’ৰ সমৰ্থন সক্ষম কৰক।"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"দ্বিতীয় ডিছপ্লে’ত ফ্ৰীফৰ্ম ৱিণ্ড’ৱিং সক্ষম কৰক"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"কেৱল গৌণ ডিছপ্লে’ত ফ্ৰীফৰ্ম ৱিণ্ড’ সক্ষম কৰক।"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"একাধিক ৱিণ্ড’ত আকাৰ সলনি কৰিব নোৱৰা সুবিধাটো সক্ষম কৰক"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"আকাৰ সলনি কৰিব নোৱৰা এপক একাধিক ৱিণ্ড’ত থকাৰ অনুমতি দিয়ে"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"বলপূর্বকভাৱে গাঢ় ৰঙৰ থীম ব্যৱহাৰ কৰা সুবিধাটো অ\'ভাৰৰাইড কৰক"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"১৬ কেবি বিকাশকৰ্তাৰ বিকল্প ব্যৱহাৰ কৰাৰ আগতে এই ডিভাইচৰ ডেটা বিভাজন ext4 লৈ ৰূপান্তৰ কৰিব লাগিব। এই ম’ডত ছফ্টৱেৰৰ অখণ্ডতা নিশ্চিত কৰিব নোৱাৰি আৰু বুটল’ডাৰ আনলক হৈ থকাৰ সময়ত ফ’নত ষ্ট’ৰ কৰা যিকোনো ডেটাৰ ক্ষেত্ৰত বিপদাশংকা থাকিব পাৰে। ১৬ কেবি বিকল্প সক্ৰিয় কৰাৰ বাবে ইয়াৰ পাছত আৰু এবাৰ ৰিবুট কৰাৰ প্ৰয়োজন হ’ব। আপুনি এবাৰ এই ম’ডত থাকিলে, আপুনি এবাৰ ৰিবুট কৰিয়েই ৪ কেবি আৰু ১৬ কেবি ম’ডৰ মাজত আগ-পিছ কৰিব পাৰিব। এই ম’ডসমূহত কিছুমান সুবিধা অক্ষম কৰা হ’ব, গতিকে কিছুমান এপ্লিকেশ্বনে কাম নকৰিবও পাৰে। ডিভাইচটোক উৎপাদন ম’ডলৈ উভতাই নিবলৈ, আপুনি ৪ কেবি ম’ডলৈ পুনৰ সলনি কৰিব লাগিব আৰু বুটল’ডাৰ লক কৰিব লাগিব, যিয়ে ডিভাইচটো ফেক্টৰী ৰিছেট কৰে। ডিভাইচটোৱে Androidত সফলতাৰে বুট কৰাৰ পাছত, বিকাশকৰ্তাৰ বিকল্পসমূহত OEM আনলক কৰাটো অক্ষম কৰক। ডিভাইচটো মচি পেলোৱা হ’ব আৰু নিশ্চিতকৰণৰ পাছত ফাইলছিষ্টেম ext4লৈ সলনি কৰা হ’ব। এইটো সম্পূৰ্ণ হোৱাৰ পাছত, ১৬ কেবি পুনৰ সক্ষম কৰিবলৈ কৰিবলৈ অনুগ্ৰহ কৰি উভতি আহক।"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"আটাইবোৰ ডেটা মচক"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ডেটা বিভাজন মচিব আৰু ext4 হিচাপে পুনৰ ফৰ্মেট কৰিব পৰা নগ’ল।"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"বুটল’ডাৰ আনলক কৰাৰ আৱশ্যক"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"১৬ কেবি বিকাশকৰ্তাৰ বিকল্প ব্যৱহাৰ কৰাৰ আগতে এই ডিভাইচত বুটল’ডাৰ আনলক কৰিব লাগিব। এই ম’ডত ছফ্টৱেৰৰ অখণ্ডতা নিশ্চিত কৰিব নোৱাৰি আৰু বুটল’ডাৰ আনলক হৈ থকাৰ সময়ত ফ’নত ষ্ট’ৰ কৰা যিকোনো ডেটাৰ ক্ষেত্ৰত বিপদাশংকা থাকিব পাৰে। ১৬ কেবি ম’ড সক্ৰিয় কৰাৰ সময়ত ব্যৱহাৰকাৰীৰ আটাইবোৰ ডেটা আৰু ছেটিং মচি পেলোৱা হ’ব। এবাৰ বুটল’ডাৰ আনলক কৰা হ’লে, ১৬ কেবি বিকল্প সক্ৰিয় কৰিবলৈ দুবাৰ ৰিবুট কৰাৰ প্ৰয়োজন হ’ব। আপুনি এবাৰ এই ম’ডত থাকিলে, আপুনি এবাৰ ৰিবুট কৰিয়েই ৪ কেবি আৰু ১৬ কেবি ম’ডৰ মাজত আগ-পিছ কৰিব পাৰিব। এই ম’ডসমূহত কিছুমান সুবিধা অক্ষম কৰা হ’ব, গতিকে কিছুমান এপ্লিকেশ্বনে কাম নকৰিবও পাৰে। ডিভাইচটোক উৎপাদন ম’ডলৈ উভতাই নিবলৈ, আপুনি ৪ কেবি ম’ডলৈ পুনৰ সলনি কৰিব লাগিব আৰু ডিভাইচটো OEM/বুটল’ডাৰ লক (যিয়ে ফেক্টৰী ৰিছেট কৰে) কৰিব লাগিব। অনুগ্ৰহ কৰি বুটল’ডাৰ আনলক কৰক আৰু পুনৰ চেষ্টা কৰক। আপুনি এইটো কেনেকৈ কৰিব লাগে তাৰ নিৰ্দেশনা <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>ত চাব পাৰে"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"৪ কেবি পেজ-এগন’ষ্টিক ম’ড ব্যৱহাৰ কৰি থকা হৈছে"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"আপুনি পেজ-এগন’ষ্টিক ম’ডৰ ৪ কেবি ম’ডত আছে। এই ম’ডত ছফ্টৱেৰৰ অখণ্ডতা নিশ্চিত কৰিব নোৱাৰি আৰু বুটল’ডাৰ আনলক হৈ থকাৰ সময়ত ফ’নত ষ্ট’ৰ কৰা যিকোনো ডেটাৰ ক্ষেত্ৰত বিপদাশংকা থাকিব পাৰে। এই ম’ডসমূহত কিছুমান সুবিধা অক্ষম কৰা হ’ব, গতিকে কিছুমান এপ্লিকেশ্বনে কাম নকৰিবও পাৰে। উৎপাদন ম’ডত পুনৰ প্ৰৱেশ কৰিবলৈ, আপুনি ডিভাইচৰ বুটল’ডাৰ লক কৰিবই লাগিব। অধিক পঢ়িবলৈ টিপক।"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"আপুনি পেজ-এগন’ষ্টিক ম’ডৰ ৪ কেবি ম’ডত আছে। এই ম’ডত ছফ্টৱেৰৰ অখণ্ডতা নিশ্চিত কৰিব নোৱাৰি আৰু বুটল’ডাৰ আনলক হৈ থকাৰ সময়ত ফ’নত ষ্ট’ৰ কৰা যিকোনো ডেটাৰ ক্ষেত্ৰত বিপদাশংকা থাকিব পাৰে। এই ম’ডসমূহত কিছুমান সুবিধা অক্ষম কৰা হ’ব, গতিকে কিছুমান এপ্লিকেশ্বনে কাম নকৰিবও পাৰে। উৎপাদন ম’ডত পুনৰ প্ৰৱেশ কৰিবলৈ, আপুনি ডিভাইচৰ বুটল’ডাৰ লক কৰিবই লাগিব। ই ডিভাইচটো পুনৰ ফেক্টৰী ৰিছেট কৰিব আৰু সেইটোক উৎপাদন ছেটিঙলৈ পুনঃস্থাপন কৰিব। ডিভাইচটোৱে Androidত সফলতাৰে বুট কৰাৰ পাছত, বিকাশকৰ্তাৰ বিকল্পসমূহত OEM আনলক কৰাটো অক্ষম কৰক। যদি ডিভাইচটো Androidত বুট কৰিব পৰা নাযায় বা অস্থিৰ হয়, তেন্তে <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>ৰ পৰা শেহতীয়া ফেক্টৰী প্ৰতিচ্ছবিসমূহৰ সৈতে ডিভাইচটো পুনৰ ফ্লেশ্ব কৰক আৰু \'ডিভাইচ মচি পেলাওক\', \'বুটল’ডাৰ লক কৰক\' আৰু \'আটাইবোৰ বিভাজন বলপূৰ্বক ফ্লেশ্ব কৰক\' বাছনি কৰক।"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"১৬ কেবি পেজ-এগন’ষ্টিক ম’ড ব্যৱহাৰ কৰি থকা হৈছে"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"আপুনি পেজ-এগন’ষ্টিক ম’ডৰ ১৬ কেবি ম’ডত আছে। এই ম’ডত ছফ্টৱেৰৰ অখণ্ডতা নিশ্চিত কৰিব নোৱাৰি আৰু বুটল’ডাৰ আনলক হৈ থকাৰ সময়ত ফ’নত ষ্ট’ৰ কৰা যিকোনো ডেটাৰ ক্ষেত্ৰত বিপদাশংকা থাকিব পাৰে। এই ম’ডসমূহত কিছুমান সুবিধা অক্ষম কৰা হ’ব, গতিকে কিছুমান এপ্লিকেশ্বনে কাম নকৰিবও পাৰে। উৎপাদন ম’ডত পুনৰ প্ৰৱেশ কৰিবলৈ, আপুনি ৪ কেবি ম’ডলৈ উভতি যাবই লাগিব আৰু তাৰ পাছত ডিভাইচৰ বুটল’ডাৰ লক কৰিবই লাগিব। অধিক পঢ়িবলৈ টিপক।"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"আপুনি পেজ-এগন’ষ্টিক ম’ডৰ ১৬ কেবি ম’ডত আছে। এই ম’ডত ছফ্টৱেৰৰ অখণ্ডতা নিশ্চিত কৰিব নোৱাৰি আৰু বুটল’ডাৰ আনলক হৈ থকাৰ সময়ত ফ’নত ষ্ট’ৰ কৰা যিকোনো ডেটাৰ ক্ষেত্ৰত বিপদাশংকা থাকিব পাৰে। এই ম’ডসমূহত কিছুমান সুবিধা অক্ষম কৰা হ’ব, গতিকে কিছুমান এপ্লিকেশ্বনে কাম নকৰিবও পাৰে। উৎপাদন ম’ডত পুনৰ প্ৰৱেশ কৰিবলৈ, আপুনি ৪ কেবি ম’ডলৈ উভতি যাবই লাগিব আৰু তাৰ পাছত ডিভাইচৰ বুটল’ডাৰ লক কৰিবই লাগিব। ই ডিভাইচটো পুনৰ ফেক্টৰী ৰিছেট কৰিব আৰু সেইটোক উৎপাদন ছেটিঙলৈ পুনঃস্থাপন কৰিব। ডিভাইচটোৱে Androidত সফলতাৰে বুট কৰাৰ পাছত, বিকাশকৰ্তাৰ বিকল্পসমূহত OEM আনলক কৰাটো অক্ষম কৰক। যদি ডিভাইচটো Androidত বুট কৰিব পৰা নাযায় বা অস্থিৰ হয়, তেন্তে <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>ৰ পৰা শেহতীয়া ফেক্টৰী প্ৰতিচ্ছবিসমূহৰ সৈতে ডিভাইচটো পুনৰ ফ্লেশ্ব কৰক আৰু \'ডিভাইচৰ ডেটা মচি পেলাওক\', \'বুটল’ডাৰ লক কৰক\' আৰু \'আটাইবোৰ বিভাজন বলপূৰ্বক ফ্লেশ্ব কৰক\' বাছনি কৰক।"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"১৬ কেবি পেজ-এগন’ষ্টিক ম’ড"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"অধিক পঢ়ক"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"বাগ ৰিপ’ৰ্ট নিয়ন্ত্ৰণ কৰোঁতা"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"আপোনাৰ টেবলেটটো লক হৈ থাকিলে আপুনি সেইটোৰ স্ক্ৰীনত কি দেখা পাব সেয়া বাছনি কৰক। স্ক্ৰীন ছেভাৰ ব্যৱহাৰ কৰাৰ সময়ত আপোনাৰ ডিভাইচটোৱে হয়তো অধিক শক্তি ব্যৱহাৰ কৰিব।"</string>
<string name="customize_button_title" msgid="1110284655990203359">"কাষ্টমাইজ কৰক"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> কাষ্টমাইজ কৰক"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ফ্ৰীফৰ্ম সমৰ্থন সক্ষম কৰিবৰ বাবে ৰিবুটৰ প্ৰয়োজন।"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"গৌণ ডিছপ্লেত ডেস্কটপ ম’ড সক্ষম কৰিবৰ বাবে ৰিবুটৰ প্ৰয়োজন।"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"লিগেচী ফ্ৰীফৰ্ম ৱিণ্ড’ৱিং সমৰ্থন সক্ষম কৰিবলৈ এবাৰ ৰিবুট কৰাৰ আৱশ্যক।"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"ফ্ৰীফৰ্ম ৱিণ্ড’ৱিঙৰ সমৰ্থন সলনি কৰিবলৈ এবাৰ ৰিবুট কৰাৰ আৱশ্যক।"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"গৌণ ডিছপ্লে’ত বলপূৰ্বকভাৱে ফ্ৰীফৰ্ম ৱিণ্ড’ৱিং কৰাৰ বাবে এবাৰ ৰিবুট কৰাৰ আৱশ্যক।"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"এতিয়াই ৰিবুট কৰক"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"পাছত ৰিবুট কৰক"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"প্ৰকৃত অভিজ্ঞতা প্ৰদান কৰা অডিঅ’"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index b5c00d2..8036ff2 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Kimlik yoxlanışı aktiv olduğu üçün lazımdır"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Seçimlər"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Əlçatımlıq"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziki klaviatura"</string>
- <string name="show_ime" msgid="4334255501724746849">"Ekran klaviaturası istifadə edin"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Fiziki klaviatura aktiv olanda görünsün"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Sıçrama düymələri"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Klaviatura <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms ərzində eyni düymənin tez-tez basılmasını nəzərə almır"</string>
<string name="slow_keys" msgid="2891452895499690837">"Asta düymələr"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Yenə də davam edin"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Ləğv edin"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Böyütmə ayarları"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 barmaq ilə böyüdücünü hərəkət etdirin"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Ekranda hərəkət üçün 1 barmağı sürüşdürün"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Bir barmaqla sürüşdürməklə böyütmə sahəsini hərəkət etdirin."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"İki barmaqla sürüşdürməklə böyütmə sahəsini hərəkət etdirin."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Yalnız ekranın bir hissəsini böyüdərkən əlçatan deyil"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Yaxınlaşdırmaq üçün düyməyə klikləyin"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Məzmunu böyütmək üçün ekranı sürətlə yaxınlaşdırın"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Yaxınlaşdırmaq üçün:</b><br/> {0,number,integer}. Böyütməyə başlamaq üçün qısayoldan istifadə edin<br/> {1,number,integer}. Ekrana toxunun<br/> {2,number,integer}. Ekranın ətrafında hərəkət etmək üçün 2 barmağınızı sürüşdürün<br/> {3,number,integer}. Miqyası tənzimləmək üçün 2 barmaqla yaxınlaşdırıb-uzaqlaşdırın<br/> {4,number,integer}. Böyütməni dayandırmaq üçün qısayoldan istifadə edin<br/><br/> <b>Müvəqqəti böyütmək üçün:</b><br/> {0,number,integer}. Böyütmə növünün tam ekrana ayarlandığına əmin olun<br/> {1,number,integer}. Böyütməyə başlamaq üçün qısayoldan istifadə edin<br/> {2,number,integer}. Ekranın istənilən yerinə toxunub saxlayın<br/> {3,number,integer}. Ekranın ətrafında hərəkət etmək üçün barmağınızı sürüşdürün<br/> {4,number,integer}. Böyütməni dayandırmaq üçün barmağınızı qaldırın"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Yaxınlaşdırmaq üçün:</b><br/> {0,number,integer}. Böyütməyə başlamaq üçün qısayoldan istifadə edin<br/> {1,number,integer}. Ekrana toxunun<br/> {2,number,integer}. Ekranda hərəkət etmək üçün 2 barmağı sürüşdürün<br/> {3,number,integer}. Miqyası tənzimləmək üçün 2 barmaqla yaxınlaşdırıb-uzaqlaşdırın<br/> {4,number,integer}. Böyütməni dayandırmaq üçün qısayoldan istifadə edin<br/><br/> Həmçinin müvəqqəti böyüdə və s. əməliyyatları edə bilərsiniz."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Yaxınlaşdırmaq üçün:</b><br/> {0,number,integer}. Böyütməyə başlamaq üçün qısayoldan istifadə edin<br/> {1,number,integer}. Ekrana toxunun<br/> {2,number,integer}. Ekranda hərəkət etmək üçün 1 və ya 2 barmağı sürüşdürün<br/> {3,number,integer}. Miqyası tənzimləmək üçün 2 barmaqla yaxınlaşdırıb-uzaqlaşdırın<br/> {4,number,integer}. Böyütməni dayandırmaq üçün qısayoldan istifadə edin<br/><br/> Həmçinin müvəqqəti böyüdə və s. əməliyyatları edə bilərsiniz."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Böyütmə aktiv edildikdə ekranda yaxınlaşdıra bilərsiniz.\n\n"<b>"Miqyası dəyişmək üçün"</b>" böyütməni başlatdıqdan sonra ekranda istənilən yerə toxunun.\n"<ul><li>"Sürüşdürmək üçün ən azı 2 barmağınızla çəkin"</li>\n<li>"Miqyası tənzimləmək üçün ən azı 2 barmağınızla sürüşdürərək yaxınlaşdırın"</li></ul>\n\n<b>"Miqyası müvəqqəti dəyişmək üçün"</b>" böyütməni başladıb ekranda istənilən yerə basın & saxlayın.\n"<ul><li>"Ekranda hərəkət etmək üçün çəkin"</li>\n<li>"Uzaqlaşdırmaq üçün barmağınızı qaldırın"</li></ul>\n\n"Klaviatura və ya naviqasiya panelində yaxınlaşdıra bilməzsiniz."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Səhifə <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Xüsusi imkanlar düyməsi qısayolu"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Rejim yaradın"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Fərdi"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Kəsintiləri məhdudlaşdırın"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\"Narahat Etməyin\" rejimini aktiv edin"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Siqnallar və media səsləri narahat edə bilər"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Cədvəl ayarlayın"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Cədvəl"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> saat <xliff:g id="MINUTES">%2$d</xliff:g> dəq"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Avtomatik yandırın"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Rutin"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Müəyyən vaxtlarda telefonu səssiz edin"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"\"Narahat etməyin\" qaydaları ayarlayın"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"bildirişi açın"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Bildirişin ertələnməsinə icazə verin"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Tətbiq ikonunda bildiriş nöqtəsi"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Köpüklər"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Köpüklər"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Söhbət üzə çıxsın"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Hamısı"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tətbiqlərin rejimdən imtina etməsinə icazə verin"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Narahat etmiş sayılmayan tətbiqlər"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Daha çox tətbiq seçin"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Qutu"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batareya"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Ayarlar Paneli"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Masaüstü rejiminə keçid məcburi olsun"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Əlavə ekranlarda masaüstünün eksperimental rejiminə keçid məcburi olsun"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"İxtiyari formada pəncərələri aktivləşdirin"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"İxtiyari formada pəncərələr üçün dəstəyi aktivləşdirin."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"İkinci displeydə ixtiyari formada pəncərə imkanı"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"İxtiyari formada pəncərələri yalnız ikinci displeydə aktivləşdirin."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Dəyişməyən miqyas çoxpəncərəli rejimdə açılsın"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Miqyası dəyişməyən tətbiqləri çoxpəncərəli rejimdə açır"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"icbari qaranlıq rejim etibarsız edilsin"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16KB developer seçimindən istifadə etməzdən əvvəl bu cihazın data bölməsi ext4-ə çevrilməlidir. Bu rejimdə proqram təminatının bütövlüyü təmin edilə bilməz və yükləyicinin kilidi açıq halda telefonda saxlanılan data risk altında ola bilər. 16 KB seçimini aktivləşdirmək üçün bundan sonra daha bir yenidən başlatma tələb ediləcək. Bu rejimdə bir dəfə yenidən başlatma ilə 4KB və 16KB rejimi arasında dəyişə bilərsiniz. Bu rejimlərdə bəzi funksiyalar deaktiv ediləcək, buna görə də bəzi proqramlar işləməyə bilər. Cihazı istehsal rejiminə qaytarmaq üçün 4KB rejiminə qaytarmalı və sonra yükləyicini kilidləməlisiniz ki, bu da cihazı zavod ayarlarına sıfırlayır. Cihaz Android-ə yükləndikdən sonra Developer seçimlərində OEM kiliddən çıxarılmasını deaktiv edin. Təsdiqdən sonra cihaz datası silinəcək və fayl sistemi ext4-ə dəyişdiriləcək. Bu tamamlandıqdan sonra 16KB-ni yenidən aktivləşdirmək üçün geri qayıdın."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Bütün datanı silin"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Data bölməsini yenidən formatlamaq və ext4-ə ayarlamaq alınmadı."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Yükləyici kilidaçması tələb edilir"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Bu cihaz 16KB developer seçimindən istifadə etməzdən əvvəl yükləyicinin kilidini açmalıdır. Bu rejimdə proqram təminatının bütövlüyü təmin edilə bilməz və yükləyicinin kilidi açıq halda telefonda saxlanılan data risk altında ola bilər. 16KB rejimi aktivləşdirildikdə bütün istifadəçi datası və ayarları silinəcək. Yükləyici kilidi açıldıqdan sonra 16KB seçimini aktivləşdirmək üçün iki dəfə yenidən başlatma tələb olunacaq. Bu rejimdə bir dəfə yenidən başlatma ilə 4KB və 16KB rejimi arasında dəyişə bilərsiniz. Bu rejimlərdə bəzi funksiyalar deaktiv ediləcək, buna görə də bəzi proqramlar işləməyə bilər. Cihazı istehsal rejiminə qaytarmaq üçün yenidən 4KB rejiminə keçməli və sonra cihazda OEM/yükləyici kilidləməsi (zavod ayarlarına sıfırlayır) icra etməlisiniz. Yükləyicini kiliddən çıxarın və yenidən cəhd edin. Təlimatlara burada baxa bilərsiniz: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4KB səhifə-aqnostik rejimindən istifadə"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Səhifə-aqnostik rejiminin 4KB rejimindəsiniz. Bu rejimdə proqram təminatının bütövlüyü təmin edilə bilməz və yükləyicinin kilidi açıq halda telefonda saxlanılan data risk altında ola bilər. Bu rejimlərdə bəzi funksiyalar deaktiv ediləcək, buna görə də bəzi proqramlar işləməyə bilər. İstehsal rejiminə yenidən daxil olmaq üçün cihazın yükləyicisini kilidləməlisiniz. Toxunaraq ətraflı oxuyun."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Səhifə-aqnostik rejiminin 4KB rejimindəsiniz. Bu rejimdə proqram təminatının bütövlüyü təmin edilə bilməz və yükləyicinin kilidi açıq halda telefonda saxlanılan data risk altında ola bilər. Bu rejimlərdə bəzi funksiyalar deaktiv ediləcək, buna görə də bəzi proqramlar işləməyə bilər. İstehsal rejiminə yenidən daxil olmaq üçün cihazın yükləyicisini kilidləməlisiniz. Bununla cihaz yenidən zavod ayarlarına qayıdacaq və istehsal ayarları bərpa ediləcək. Cihaz Android-ə yükləndikdən sonra Developer seçimlərində OEM kiliddən çıxarılmasını deaktiv edin. Cihaz Android-ə yüklənmirsə və ya qeyri-sabitdirsə, cihazı buradan əldə edilən ən son fabrik şəkilləri ilə yenidən işə salın: <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> yaxud <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> istifadə edin və \"Cihaz datasını silin\", \"Yükləyicini kilidləyin\" və \"Bütün hissələri məcburi yükləyin\" seçin."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16KB səhifə-aqnostik rejimindən istifadə"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Səhifədən asılı olmayan rejimin 16 KB rejimindəsiniz. Bu rejimdə proqram təminatının bütövlüyü təmin edilə bilməz və yükləyicinin kilidi açıq halda telefonda saxlanılan data risk altında ola bilər. Bu rejimlərdə bəzi funksiyalar deaktiv ediləcək, buna görə də bəzi tətbiqlər işləməyə bilər. İstehsal rejiminə yenidən daxil olmaq üçün yenidən 4 KB rejiminə keçməli və sonra cihazın yükləyicisini kilidləməlisiniz. Toxunaraq ətraflı oxuyun."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Səhifədən asılı olmayan rejimin 16 KB rejimindəsiniz. Bu rejimdə proqram təminatının bütövlüyü təmin edilə bilməz və yükləyicinin kilidi açıq halda telefonda saxlanılan data risk altında ola bilər. Bu rejimlərdə bəzi funksiyalar deaktiv ediləcək, buna görə də bəzi tətbiqlər işləməyə bilər. İstehsal rejiminə yenidən daxil olmaq üçün yenidən 4 KB rejiminə keçməli və sonra cihazın yükləyicisini kilidləməlisiniz. Bununla cihaz yenidən zavod ayarlarına qayıdacaq və istehsal ayarları bərpa ediləcək. Cihaz Android-ə yükləndikdən sonra Developer seçimlərində OEM kiliddən çıxarılmasını deaktiv edin. Cihaz Android-ə yüklənmirsə və ya qeyri-sabitdirsə, cihazı buradan əldə edilən ən son fabrik şəkilləri ilə yenidən işə salın: <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> yaxud <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> istifadə edin və \"Cihaz datasını silin\", \"Yükləyicini kilidləyin\" və \"Bütün hissələri məcburi yükləyin\" seçin."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB səhifə-aqnostik rejimi"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Ətraflı məlumat"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Baq hesabatı idarəedicisi"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Planşet doka yerləşdirildikdə ekranda nə görəcəyinizi seçin. Ekran qoruyucusu istifadə edildikdə cihazınız daha çox enerji sərf edə bilər."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Fərdiləşdirin"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Fərdiləşdirin: <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Sərbəst forma dəstəyini aktivləşdirmək üçün yenidən başlatma tələb olunur."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"İkinci dərəcəli displeylərdə masaüstü rejimini məcburi aktiv etmək üçün yenidən başlatma tələb olunur."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Köhnə ixtiyari formada pəncərə dəstəyini aktivləşdirmək üçün yenidən yükləmə tələb olunur."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"İxtiyari formada pəncərə dəstəyini dəyişmək üçün yenidən yükləmə tələb olunur."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"İkinci displeylərdə ixtiyari formada pəncərələri məcbur etmək üçün yenidən yükləmə tələb olunur."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"İndi yenidən başladın"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Sonra yeniden başladın"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Uzaysal Audio"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 018ca1b..6c9567b 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"To je potrebno jer je uključena provera identiteta"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opcije"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Pristupačnost"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fizička tastatura"</string>
- <string name="show_ime" msgid="4334255501724746849">"Koristi tastaturu na ekranu"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Zadržava se na ekranu dok je fizička tastatura aktivna"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Duži odziv tastera"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Tastatura zanemaruje brze pritiske istog tastera koji se ponavljaju u roku od <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Spori tasteri"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ipak nastavi"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Otkaži"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Podešavanja uvećanja"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Pomerite lupu 1 prstom"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Prevlačite 1 prst za kretanje po ekranu"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Pomerajte oblast za uvećanje prevlačenjem jednog prsta."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Pomerajte oblast za uvećanje prevlačenjem dva prsta."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nije dostupno kada se uvećava samo deo ekrana"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Dodirnite dugme da biste zumirali"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Brzo uvećajte ekran da bi sadržaj bio veći"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Da biste uvećali:</b><br/> {0,number,integer}. Koristite prečicu da biste pokrenuli uvećanje<br/> {1,number,integer}. Dodirnite ekran<br/> {2,number,integer}. Prevlačite pomoću 2 prsta da biste se kretali po ekranu<br/> {3,number,integer}. Skupite 2 prsta da biste prilagodili zumiranje<br/> {4,number,integer}. Koristite prečicu da biste zaustavili uvećanje<br/><br/> <b>Da biste privremeno uvećali:</b><br/> {0,number,integer}. Uverite se da je tip uvećanja podešen na ceo ekran<br/> {1,number,integer}. Koristite prečicu da biste pokrenuli uvećanje<br/> {2,number,integer}. Dodirnite i zadržite bilo koji deo ekrana<br/> {3,number,integer}. Prevlačite prst da biste se kretali po ekranu<br/> {4,number,integer}. Podignite prst da biste zaustavili uvećanje"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Da biste uvećali:</b><br/> {0,number,integer}. Koristite prečicu da biste pokrenuli uvećanje<br/> {1,number,integer}. Dodirnite ekran<br/> {2,number,integer}. Prevlačite pomoću 2 prsta da biste se kretali po ekranu<br/> {3,number,integer}. Skupite 2 prsta da biste prilagodili zumiranje<br/> {4,number,integer}. Koristite prečicu da biste zaustavili uvećanje<br/><br/> Možete privremeno da zumirate i drugo."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Da biste uvećali:</b><br/> {0,number,integer}. Koristite prečicu da biste pokrenuli uvećanje<br/> {1,number,integer}. Dodirnite ekran<br/> {2,number,integer}. Prevlačite 1 ili 2 prsta da biste se kretali po ekranu <br/> {3,number,integer}. Skupite 2 prsta da biste prilagodili zumiranje<br/> {4,number,integer}. Koristite prečicu da biste zaustavili uvećanje<br/><br/> Možete privremeno da zumirate i drugo."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kada je uvećanje uključeno, možete da uvećate ekran.\n\n"<b>"Da biste zumirali"</b>", pokrenite uvećanje, pa dodirnite bilo koji deo ekrana.\n"<ul><li>"Prevlačite pomoću 2 ili više prstiju da biste pomerali prikaz"</li>\n<li>"Skupite 2 ili više prstiju da biste prilagodili zumiranje"</li></ul>\n\n<b>"Za privremeno zumiranje"</b>" pokrenite uvećanje, pa dodirnite i zadržite bilo koji deo ekrana.\n"<ul><li>"Prevlačite da biste se kretali po ekranu"</li>\n<li>"Podignite prst da biste umanjili prikaz"</li></ul>\n\n"Ne možete da uvećavate tastaturu ili traku za navigaciju."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. stranica od <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Prečica za dugme Pristupačnost"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Napravite režim"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Prilagođeno"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ograničite prekide"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Uključite režim Ne uznemiravaj"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Zvukovi alarma i medija mogu da prekinu"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Podesite raspored"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Raspored"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> s, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Automatski uključi"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Raspored"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Utišajte telefon u određeno vreme"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Podesite pravila za režim „Ne uznemiravaj“"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"otvaranje obaveštenja"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Omogući odlaganje obaveštenja"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Tačka za obaveštenja na ikoni aplikacije"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Skupovi obaveštenja"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Oblačići"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Oblačići"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Prikaži ovu konverzaciju u oblačiću"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Sve"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Dozvoli da aplikacije zanemaruju"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije koje mogu da prekidaju"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Izaberite još aplikacija"</string>
@@ -4347,7 +4346,7 @@
<string name="system_navigation_title" msgid="4890381153527184636">"Režim navigacije"</string>
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Navigacija pomoću 2 dugmeta"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Da biste prešli sa jedne aplikacije na drugu, prevucite nagore na dugmetu Početak. Da biste videli sve aplikacije, ponovo prevucite nagore. Da biste se vratili, dodirnite dugme Nazad."</string>
- <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Bezbednost i hitni slučajevi"</string>
+ <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Lična bezbednost i hitni slučajevi"</string>
<string name="emergency_dashboard_summary" msgid="401033951074039302">"Hitna pomoć, medicinske informacije, obaveštenja"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Navigacija pomoću pokreta"</string>
<string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"Da biste otišli na početni ekran, prevucite nagore od dna ekrana. Da biste prešli sa jedne aplikacije na drugu, prevucite nagore od dna ekrana, zadržite, pa pustite. Da biste se vratili nazad, prevucite od leve ili desne ivice."</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Futrola"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterija"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Tabla sa podešavanjima"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Nametni režim računara"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Nameće eksperimentalni režim računara na sekundarnim ekranima"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Omogući prozore proizvoljnog formata"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Omogućava podršku za prozore proizvoljnog formata."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Omogući prozore proizvoljnog formata na 2. ekranu"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Omogućava prozore proizvoljnog formata samo na sekundarnom ekranu."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Omogući aplikacije nepromenjive veličine u više prozora"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Omogućava da aplikacije nepromenjive veličine budu u više prozora"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Zameni funkciju nametanja tamne teme"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Da bi ovaj uređaj mogao da koristi opciju za programera od 16 kB, njegova particija podataka treba da se konvertuje u ext4. U ovom režimu ne može da se garantuje integritet softvera, pa podaci koji se čuvaju na telefonu dok je pokretački program otključan mogu da budu ugroženi. Aktiviranje opcije od 16 kB zahteva još jedno restartovanje. Kada budete u ovom režimu, moći ćete da prelazite sa režima od 4 kB na režim od 16 kB i obratno uz jedno restartovanje. Neke funkcije su onemogućene u ovim režimima, što znači da neke aplikacije možda neće raditi. Da biste uređaj vratili na proizvodni režim, treba da ga vratite na režim od 4 kB i zaključate pokretački program, čime će se uređaj resetovati na fabrička podešavanja. Kada se na uređaju uključi Android, onemogućite OEM otključavanje u Opcijama za programera. Uređaj će posle potvrde biti obrisan, a sistem fajlova promenjen na ext4. Kada se to završi, vratite se ovde da biste ponovo omogućili režim od 16 kB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Obriši sve podatke"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Reformatiranje i brisanje particije podataka na ext4 nije uspelo."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Treba da otključate pokretački program"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Da bi ovaj uređaj mogao da koristi opciju za programera od 16 kB, na njemu treba da bude otključan pokretački program. U ovom režimu ne može da se garantuje integritet softvera, pa mogu biti ugroženi podaci koji se čuvaju na telefonu dok je pokretački program otključan. Kada se aktivira režim od 16 kB, svi podaci i podešavanja korisnika će biti izbrisani. Kada se pokretački program otključa, aktiviranje opcije od 16 kB zahteva dva restartovanja. Kada budete u ovom režimu, moći ćete da prelazite sa režima od 4 kB na režim od 16 kB i obratno uz jedno restartovanje. Neke funkcije su onemogućene u ovim režimima, što znači da neke aplikacije možda neće raditi. Da biste uređaj vratili na proizvodni režim, treba da ga vratite na režim od 4 kB i zaključate OEM ili pokretački program na uređaju (što će ga resetovati na fabrička podešavanja). Otključajte pokretački program i probajte ponovo. Uputstva kako to da uradite potražite na <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Koristite režim od 4 kB nezavisan od veličine stranice"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Koristite režim od 4 kB u okviru režima nezavisnog od veličine stranice. U ovom režimu ne može da se garantuje integritet softvera, pa podaci koji se čuvaju na telefonu dok je pokretački program otključan mogu da budu ugroženi. Neke funkcije su onemogućene u ovim režimima, što znači da neke aplikacije možda neće raditi. Da biste uređaj ponovo vratili u proizvodni režim, morate da zaključate pokretački program uređaja. Dodirnite da biste pročitali više."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Koristite režim od 4 kB u okviru režima nezavisnog od veličine stranice. U ovom režimu ne može da se garantuje integritet softvera, pa mogu biti ugroženi podaci koji se čuvaju na telefonu dok je pokretački program otključan. Neke funkcije su onemogućene u ovim režimima, što znači da neke aplikacije možda neće raditi. Da biste uređaj ponovo vratili u proizvodni režim, morate da zaključate pokretački program uređaja. To će ponovo resetovati uređaj na fabrička podešavanja i vratiti ga na proizvodna podešavanja. Kada se na uređaju uključi Android, onemogućite OEM otključavanje u Opcijama za programera. Ako je uređaj nestabilan ili se na njemu ne uključi Android, ponovo ga flešujte koristeći najnovije slike sa fabričkim podešavanjima sa <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>. Možete i da koristite <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> i izaberete Obriši uređaj, Zaključaj pokretački program i Prinudno flešuj sve particije."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Koristite režim od 16 kB nezavisan od veličine stranice"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Koristite režim od 16 KB u okviru režima nezavisnog od veličine stranice. U ovom režimu ne može da se garantuje integritet softvera, pa mogu biti ugroženi podaci koji se čuvaju na telefonu dok je pokretački program otključan. Neke funkcije su onemogućene u ovim režimima, što znači da neke aplikacije možda neće raditi. Da biste uređaj ponovo vratili u proizvodni režim, morate da ga vratite na režim od 4 KB i zaključate pokretački program uređaja. Dodirnite da biste pročitali više."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Koristite režim od 16 KB u okviru režima nezavisnog od veličine stranice. U ovom režimu ne može da se garantuje integritet softvera, pa mogu biti ugroženi podaci koji se čuvaju na telefonu dok je pokretački program otključan. Neke funkcije su onemogućene u ovim režimima, što znači da neke aplikacije možda neće raditi. Da biste uređaj ponovo vratili u proizvodni režim, morate da ga vratite na režim od 4 KB i zaključate pokretački program uređaja. To će ponovo resetovati uređaj na fabrička podešavanja i vratiti ga na proizvodna podešavanja. Kada se na uređaju uključi Android, onemogućite OEM otključavanje u Opcijama za programera. Ako je uređaj nestabilan ili se na njemu ne uključi Android, ponovo ga flešujte koristeći najnovije slike sa fabričkim podešavanjima sa <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>. Možete i da koristite <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> i izaberete Obriši uređaj, Zaključaj pokretački program i Prinudno flešuj sve particije."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Režim od 16 kB nezavisan od veličine stranice"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Pročitajte više"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Obrađivač izveštaja o grešci"</string>
@@ -5189,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Izaberite šta ćete videti na ekranu kada je tablet na baznoj stanici. Uređaj može da troši više energije kada se koristi čuvar ekrana."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Prilagodi"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Prilagodite <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Morate da restartujete da biste omogućili podršku za slobodan oblik."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Morate da restartujete da biste prinudno omogućili režim za računare na sekundarnim ekranima."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Morate da restartujete da biste omogućili podršku za zastarele prozore proizvoljnog formata."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Morate da restartujete da biste promenili podršku za prozore proizvoljnog formata."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Morate da restartujete da biste prinudno omogućili prozore proizvoljnog formata na sekundarnom ekranu."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Restartuj"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Restartuj kasnije"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorni zvuk"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index efbaeae..877eaa8 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Твар і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Твар, адбітак пальца і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Твар, адбіткі пальцаў і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Гэта неабходна, паколькі ўключана функцыя праверкі асобы"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Іншыя версіі"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Спецыяльныя магчымасці"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Фізічная клавіятура"</string>
- <string name="show_ime" msgid="4334255501724746849">"Выкарыстоўваць экранную клавіятуру"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Захоўваць яе на экране ў той час, калі фізічная клавіятура актыўная"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Ігнараванне паўторнага націскання"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Паўторныя націсканні адной і той жа клавішы, ажыццёўленыя на працягу <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мс, ігнаруюцца"</string>
<string name="slow_keys" msgid="2891452895499690837">"Запавольванне рэакцыі на націсканне"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Стварыць рэжым"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Карыстальніцкі"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Абмежаванне колькасці непатрэбных апавяшчэнняў"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Уключэнне рэжыму \"Не турбаваць\""</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Гэты рэжым не распаўсюджваецца на сігналы будзільнікаў і гукі мультымедыя"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Задаць расклад"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Расклад"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> гадз <xliff:g id="MINUTES">%2$d</xliff:g> хв"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Уключаць аўтаматычна"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Расклад"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Выключаць гук тэлефона ў пэўны час"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Правілы рэжыму \"Не турбаваць\""</string>
@@ -3541,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"адкрыць апавяшчэнне"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Дазволіць адкладванне апавяшчэнняў"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Значок апавяшчэнняў на значку праграмы"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Усплывальныя чаты"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Усплывальныя чаты"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Паказваць гэту размову ў выглядзе ўсплывальных апавяшчэнняў"</string>
@@ -3834,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Усе"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дазволіць праграмам перавызначаць"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Гэты рэжым не распаўсюджваецца на наступныя праграмы"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Выбраць іншыя праграмы"</string>
@@ -4858,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Чахол"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Акумулятар"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Панель налад"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Прымусова ўключаць рэжым працоўнага стала"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Прымусова ўключаць эксперыментальны рэжым працоўнага стала на дадатковых экранах"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Уключыць адвольную форму вокнаў"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Уключыць падтрымку адвольнай формы вокнаў."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Уключыць адвольную форму вокнаў на другасным дысплэі"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Уключыць адвольную форму вокнаў толькі на другасным дысплэі."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"У рэжыме некалькіх вокнаў уключыць нязменны памер"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Дазваляе выкарыстоўваць праграмы, якія маюць нязменны памер, у рэжыме некалькіх вокнаў"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Перавызначэнне ўключэння цёмнай тэмы"</string>
@@ -4927,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Каб выкарыстоўваць рэжым 16 КБ у параметрах распрацоўшчыка, раздзел даных на гэтай прыладзе трэба пераўтварыць у ext4. У гэтым рэжыме цэласнасць праграмнага забеспячэння не гарантуецца. Існуе рызыка страціць даныя, якія былі захаваны на тэлефоне, калі загрузчык быў разблакіраваны. Для ўключэння параметра 16 КБ патрабуецца паўторная перазагрузка. Пасля таго як вы ўключыце гэты рэжым, пераключэнне паміж рэжымамі 4 КБ і 16 КБ будзе суправаджацца толькі адной перазагрузкай. Асобныя функцыі будуць адключаны ў гэтых рэжымах, з-за чаго некаторыя праграмы могуць не працаваць. Каб вярнуць прыладу ў эксплуатацыйны рэжым, вам трэба пераключыцца ў рэжым 4 КБ і заблакіраваць загрузчык, што прывядзе да скіду прылады да заводскіх налад. Пасля загрузкі Android на прыладзе выключыце разблакіроўку OEM у Параметрах распрацоўшчыка. Усе даныя будуць выдалены з прылады, а файлавая сістэма пасля пацвярджэння будзе зменена на ext4. Пасля завяршэння вярніцеся, каб зноў уключыць рэжым 16 КБ."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Сцерці ўсе даныя"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Не ўдалося ачысціць раздзел даных і перафармаціраваць яго ў ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Патрабуецца разблакіроўка загрузчыка"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Каб выкарыстоўваць рэжым 16 КБ у параметрах распрацоўшчыка, трэба разблакіраваць загрузчык на прыладзе. У гэтым рэжыме цэласнасць праграмнага забеспячэння не гарантуецца. Існуе рызыка страціць даныя, якія былі захаваны на тэлефоне, калі загрузчык быў разблакіраваны. Калі рэжым 16 КБ уключыцца, усе даныя і налады карыстальніка будуць выдалены. Калі загрузчык будзе разблакіраваны, для ўключэння параметра 16 КБ спатрэбяцца дзве перазагрузкі. Пасля таго як вы ўключыце гэты рэжым, пераключэнне паміж рэжымамі 4 КБ і 16 КБ будзе суправаджацца толькі адной перазагрузкай. Асобныя функцыі будуць адключаны ў гэтых рэжымах, з-за чаго некаторыя праграмы могуць не працаваць. Каб вярнуць прыладу ў эксплуатацыйны рэжым, вам трэба пераключыцца ў рэжым 4 КБ і заблакіраваць OEM ці загрузчык (што прывядзе да скіду прылады да заводскіх налад). Разблакіруйце загрузчык і паўтарыце спробу. Інструкцыі, як гэта зрабіць, глядзіце на старонцы <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>."</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Дзейнічае рэжым 4 КБ, які не залежыць ад памеру старонкі памяці"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"У вас уключаны рэжым, які не залежыць ад памеру старонкі памяці і працуе з ядром для старонак памяці памерам 4 КБ. У гэтым рэжыме цэласнасць праграмнага забеспячэння не гарантуецца. Існуе рызыка страціць даныя, якія былі захаваны на тэлефоне, калі загрузчык быў разблакіраваны. Асобныя функцыі будуць адключаны ў гэтых рэжымах, з-за чаго некаторыя праграмы могуць не працаваць. Каб паўторна ўвайсці ў эксплуатацыйны рэжым, заблакіруйце загрузчык на прыладзе. Націсніце, каб чытаць далей."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"У вас уключаны рэжым, які не залежыць ад памеру старонкі памяці і працуе з ядром для старонак памяці памерам 4 КБ. У гэтым рэжыме цэласнасць праграмнага забеспячэння не гарантуецца. Існуе рызыка страціць даныя, якія былі захаваны на тэлефоне, калі загрузчык быў разблакіраваны. Асобныя функцыі будуць адключаны ў гэтых рэжымах, з-за чаго некаторыя праграмы могуць не працаваць. Каб паўторна ўвайсці ў эксплуатацыйны рэжым, заблакіруйце загрузчык на прыладзе. Пасля гэтага адбудзецца яе паўторны скід да заводскіх налад. Пасля загрузкі Android на прыладзе выключыце разблакіроўку OEM у Параметрах распрацоўшчыка. Калі на прыладзе не ўдаецца запусціць АС Android ці яе праца нестабільная, перапрашыйце прыладу, выкарыстоўваючы апошнія версіі заводскіх вобразаў, якія можна спампаваць тут: <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>. Або перайдзіце па спасылцы <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> і выберыце \"Ачысціць прыладу\", \"Заблакіраваць загрузчык\" і \"Перапрашыць усе раздзелы\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Дзейнічае рэжым 16 КБ, які не залежыць ад памеру старонкі памяці"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"У вас уключаны рэжым, які не залежыць ад памеру старонкі памяці і працуе з ядром для старонак памяці памерам 16 КБ. У гэтым рэжыме цэласнасць праграмнага забеспячэння не гарантуецца і ёсць рызыка страціць даныя, якія захоўваюцца на тэлефоне пры разблакіраваным загрузчыку. Асобныя функцыі будуць адключаны ў гэтых рэжымах, з-за чаго некаторыя праграмы могуць не працаваць. Каб паўторна ўвайсці ў эксплуатацыйны рэжым, пераключыцеся на рэжым 4 КБ і заблакіруйце загрузчык на прыладзе. Націсніце, каб чытаць далей."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"У вас уключаны рэжым, які не залежыць ад памеру старонкі памяці і працуе з ядром для старонак памяці памерам 16 КБ. У гэтым рэжыме цэласнасць праграмнага забеспячэння не гарантуецца і ёсць рызыка страціць даныя, якія захоўваюцца на тэлефоне пры разблакіраваным загрузчыку. Асобныя функцыі будуць адключаны ў гэтых рэжымах, з-за чаго некаторыя праграмы могуць не працаваць. Каб паўторна ўвайсці ў эксплуатацыйны рэжым, пераключыцеся на рэжым 4 КБ і заблакіруйце загрузчык на прыладзе. Пасля гэтага адбудзецца яе паўторны скід да заводскіх налад. Пасля загрузкі Android выключыце разблакіроўку OEM у Параметрах распрацоўшчыка. Калі на прыладзе не ўдаецца запусціць АС Android ці яе праца нестабільная, перапрашыйце прыладу, выкарыстоўваючы апошнія версіі заводскіх вобразаў, якія можна спампаваць тут: <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>. Або перайдзіце па спасылцы <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> і выберыце \"Ачысціць прыладу\", \"Заблакіраваць загрузчык\" і \"Перапрашыць усе раздзелы\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Рэжым, які не залежыць ад памеру старонкі памяці і працуе з ядром для старонак памяці памерам 16 КБ"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Чытаць далей"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Апрацоўшчык справаздачы пра памылкі"</string>
@@ -5186,8 +5189,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Выберыце змесціва, якое будзе паказвацца на экране, калі планшэт падключаны да док-станцыі. Пры выкарыстанні экраннай застаўкі прылада можа спажываць больш энергіі."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Наладзіць"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Наладзіць застаўку \"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>\""</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Каб уключыць падтрымку адвольнай формы, патрабуецца перазагрузка."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Каб прымусова ўключыць на дадатковых дысплэях рэжым працоўнага стала, патрабуецца перазагрузка."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Каб уключыць падтрымку адвольнай формы вокнаў (устарэлую наладу), патрабуецца перазагрузка."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Каб змяніць падтрымку адвольнай формы вокнаў, патрабуецца перазагрузка."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Каб прымусова ўключыць падтрымку адвольнай формы вокнаў (устарэлую наладу) на другасных дысплэях, патрабуецца перазагрузка."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Перазагрузіць зараз"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Перазагрузіць пазней"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Прасторавае гучанне"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index ec378d6..b70fa75 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Лицето и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Лицето, отпечатъкът и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Лицето, отпечатъците и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Това е необходимо, тъй като функцията за проверка на самоличността е включена"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Опции"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Достъпност"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Физическа клавиатура"</string>
- <string name="show_ime" msgid="4334255501724746849">"Използване на екранната клавиатура"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Показва се на екрана, докато физическата клавиатура е активна"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Игнориране на многократ. натискане"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Клавиатурата пренебрегва бързите натискания на един и същ клавиш, повтарящи се в рамките на <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мсек"</string>
<string name="slow_keys" msgid="2891452895499690837">"Забавяне на сигнала от клавишите"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Напред въпреки това"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Отказ"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Настройки за увеличението"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Преместете лупата с 1 пръст"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Плъзнете с пръст, за да се придвижвате на екрана."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Преместете областта за увеличаване, като плъзнете 1 пръст."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Преместете областта за увеличаване, като плъзнете 2 пръста."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Не е налице, когато се увеличава само част от екрана"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Променяйте мащаба с докосване на бутон"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Бързо увеличавайте мащаба на екрана, за да уголемите съдържанието"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>За да увеличите мащаба</b>:<br/> {0,number,integer}. Използвайте прекия път за стартиране на увеличението.<br/> {1,number,integer}. Докоснете екрана.<br/> {2,number,integer}. Плъзнете с 2 пръста, за да се придвижите по екрана.<br/> {3,number,integer}. Съберете 2 пръста, за да коригирате мащаба.<br/> {4,number,integer}. Използвайте прекия път за спиране на увеличението.<br/><br/> <b>За временно увеличаване на мащаба</b>:<br/> {0,number,integer}. За типа увеличение трябва да зададете „Цял екран“.<br/> {1,number,integer}. Използвайте прекия път за стартиране на увеличението.<br/> {2,number,integer}. Докоснете и задръжте произволно място на екрана.<br/> {3,number,integer}. Плъзнете пръст, за да се придвижите по екрана.<br/> {4,number,integer}. Вдигнете пръста си, за да спрете увеличението."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>За да увеличите мащаба</b>:<br/> {0,number,integer}. Използвайте прекия път за стартиране на увеличението.<br/> {1,number,integer}. Докоснете екрана.<br/> {2,number,integer}. Плъзнете с 2 пръста, за да се придвижите по екрана.<br/> {3,number,integer}. Съберете 2 пръста, за да коригирате мащаба.<br/> {4,number,integer}. Използвайте прекия път, за да спрете увеличението.<br/><br/> Можете също да приближавате временно и още много други неща."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>За да увеличите мащаба</b>:<br/> {0,number,integer}. Използвайте прекия път за стартиране на увеличението.<br/> {1,number,integer}. Докоснете екрана.<br/> {2,number,integer}. Плъзнете с 1 или 2 пръста, за да се придвижите по екрана.<br/> {3,number,integer}. Съберете 2 пръста, за да коригирате мащаба.<br/> {4,number,integer}. Използвайте прекия път, за да спрете увеличението.<br/><br/> Можете също да приближавате временно и още много други неща."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Когато функцията за увеличение е включена, можете да увеличавате мащаба на екрана.\n\n"<b>"За да промените мащаба"</b>", стартирайте функцията за увеличение, след което докоснете произволно място на екрана.\n"<ul><li>"Плъзнете 2 или повече пръсти, за да превъртите."</li>\n<li>"Съберете или разтворете 2 или повече пръсти, за да коригирате мащаба."</li></ul>\n\n<b>"За да промените временно мащаба"</b>", стартирайте функцията за увеличение, след което докоснете и задръжте произволно място на екрана.\n"<ul><li>"Плъзнете пръста си, за да се придвижите на екрана."</li>\n<li>"Вдигнете пръста си, за да намалите мащаба."</li></ul>\n\n"Не можете да увеличавате мащаба на клавиатурата или лентата за навигация."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Страница <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> от <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Пряк път чрез бутона за достъпност"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Създаване на режим"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Персонализирано"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ограничаване на прекъсванията"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Включване на режима „Не безпокойте“"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Будилниците и звуците на мултимедийното съдържание могат да прекъсват режима"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Задаване на график"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"График"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ч и <xliff:g id="MINUTES">%2$d</xliff:g> мин"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Автоматично включване"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"График"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Заглуш. на телефона в опр. моменти"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Правила за „Не безпокойте“"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"отваряне на известието"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Разрешаване на отлагането на известията"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Точка за известия в иконата на прил."</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Групи известия"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Балончета"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Балончета"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Показване на балонче за този разговор"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Всички"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Разрешаване на приложения да отменят режима"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Приложения, които могат да прекъсват режима"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Избиране на още приложения"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Калъф"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батерия"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Панел за настройки"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Принудително задаване на настолен режим"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Принудително задаване на експерименталния настолен режим на алтернативни дисплеи"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Активиране на прозорците в свободна форма"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Активиране на поддръжката за прозорците в свободна форма."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Прозорци в свободна форма на втори дисплей: Актив."</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Активиране на прозорците в свободна форма само на вторичен дисплей."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Активиране на непреоразмерими елементи в „Няколко прозореца“"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Разрешава на приложенията, които не могат да се преоразмеряват, да бъдат в режим за няколко прозореца"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Отмяна на налагането на тъмен режим"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Делът с данни на това устройство трябва да се преобразува към ext4, преди да се използва опцията за програмисти 16 KB. Целостта на софтуера не може да се гарантира в този режим. Също така данните, съхранявани на телефона, може да са изложени на риск, докато програмата за първоначално зареждане е отключена. За активирането на опцията 16 KB ще е необходимо още едно рестартиране след това. Когато сте в този режим, можете да превключвате между режимите 4 KB и 16 KB с едно рестартиране. Определени функции ще бъдат деактивирани в тези режими, така че някои приложения може да не работят. За да върнете устройството в производствен режим, ще трябва да превключите обратно към режима 4 KB и след това да заключите програмата за първоначално зареждане, което ще възстанови фабричните настройки на устройството. След като то стартира Android, деактивирайте настройката за отключване чрез OEM от опциите за програмисти. Всички данни на устройството ще бъдат изчистени и след потвърждение файловата система ще се промени на ext4. След като процесът приключи, върнете се, за да активирате опцията 16 KB отново."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Изтриване на всички данни"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Изчистването на всички данни от дяла и преформатирането на ext4 не бе успешно."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Изисква се отключване на програмата за първоначално зареждане"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Програмата за първоначално зареждане на това устройство трябва да е отключена, преди да се използва опцията за програмисти 16 KB. Целостта на софтуера не може да се гарантира в този режим. Също така данните, съхранявани на телефона, може да са изложени на риск, докато програмата за първоначално зареждане е отключена. Всички потребителски данни и настройки ще бъдат изчистени при активирането на режима 16 KB. След като програмата за първоначално зареждане бъде отключена, за активирането на опцията 16 KB ще са необходими две рестартирания. Когато сте в този режим, можете да превключвате между режимите 4 KB и 16 KB с едно рестартиране. Определени функции ще бъдат деактивирани в тези режими, така че някои приложения може да не работят. За да върнете устройството в производствен режим, ще трябва да превключите обратно към режима 4 KB и след това да възстановите заключването чрез OEM или да заключите програмата за първоначално зареждане на устройството, което ще възстанови фабричните настройки. Моля, отключете програмата за първоначално зареждане и опитайте отново. За инструкции как да направите това, вижте <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"За режима за съвместимост със страниците се използва опцията 4 KB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Използвате опцията 4 KB за режима за съвместимост със страниците. Целостта на софтуера не може да се гарантира в този режим. Също така данните, съхранявани на телефона, може да са изложени на риск, докато програмата за първоначално зареждане е отключена. Определени функции ще бъдат деактивирани в тези режими, така че някои приложения може да не работят. За да активирате отново производствения режим, трябва да заключите програмата за първоначално зареждане на устройството. Докоснете, за да прочетете повече."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Използвате опцията 4 KB за режима за съвместимост със страниците. Целостта на софтуера не може да се гарантира в този режим. Също така данните, съхранявани на телефона, може да са изложени на риск, докато програмата за първоначално зареждане е отключена. Определени функции ще бъдат деактивирани в тези режими, така че някои приложения може да не работят. За да активирате отново производствения режим, трябва да заключите програмата за първоначално зареждане на устройството. Това отново ще възстанови фабричните настройки на устройството, както и тези на производствения режим. След като то стартира Android, деактивирайте настройката за отключване чрез OEM от опциите за програмисти. Ако устройството не стартира Android или е нестабилно, преинсталирайте го посредством най-новите фабрични образи на адрес <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> или използвайте <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> и изберете опцията за изчистване на всички данни от устройството, „Заключване на програмата за първоначално зареждане“ и опцията за принудително инсталиране на всички дялове."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"За режима за съвместимост със страниците се използва опцията 16 KB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Използвате опцията 16 KB за режима за съвместимост със страниците. Целостта на софтуера не може да се гарантира в този режим. Също така данните, съхранявани на телефона, може да са изложени на риск, докато програмата за първоначално зареждане е отключена. Определени функции ще бъдат деактивирани в тези режими, така че някои приложения може да не работят. За да активирате отново производствения режим, трябва да превключите обратно към режим 4 KB и след това да заключите програмата за първоначално зареждане на устройството. Докоснете, за да прочетете повече."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Използвате опцията 16 KB за режима за съвместимост със страниците. Целостта на софтуера не може да се гарантира в този режим. Също така данните, съхранявани на телефона, може да са изложени на риск, докато програмата за първоначално зареждане е отключена. Определени функции ще бъдат деактивирани в тези режими, така че някои приложения може да не работят. За да активирате отново производствения режим, трябва да превключите обратно към режим 4 KB и след това да заключите програмата за първоначално зареждане на устройството. Това отново ще възстанови фабричните настройки на устройството, както и тези на производствения режим. След като то стартира Android, деактивирайте настройката за отключване чрез OEM от опциите за програмисти. Ако устройството не стартира Android или е нестабилно, преинсталирайте го посредством най-новите фабрични образи на адрес <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> или използвайте <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> и изберете опцията за изчистване на всички данни от устройството, „Заключване на програмата за първоначално зареждане“ и опцията за принудително инсталиране на всички дялове."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Режим за съвместимост със страниците (16 KB)"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Прочетете още"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Манипулатор за сигналите за програмни грешки"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Изберете какво да се показва на екрана, когато таблетът ви е свързан с докинг станция. Устройството ви може да изразходва повече енергия при използването на скрийнсейвър."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Персонализиране"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Персонализиране на <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"За да се активира поддръжката в свободна форма, се изисква рестартиране."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"За да се зададе принудително настолният режим на алтернативни дисплеи, се изисква рестартиране."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"За да се активира поддръжката за наследените прозорци в свободна форма, се изисква рестартиране."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"За да се промени поддръжката за прозорците в свободна форма, се изисква рестартиране."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"За да се зададат принудително прозорците в свободна форма на вторични дисплеи, се изисква рестартиране."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Рестартиране сега"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Рестартиране по-късно"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Пространствено аудио"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 22162e3..4c21cca 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ফেস ও <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ফেস, ফিঙ্গারপ্রিন্ট এবং <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ফেস, ফিঙ্গারপ্রিন্ট এবং <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"এটি করতে হবে কারণ আইডেন্টিটি চেক চালু আছে"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"বিকল্প"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"অ্যাক্সেসিবিলিটি"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"ফিজিক্যাল কীবোর্ড"</string>
- <string name="show_ime" msgid="4334255501724746849">"অন-স্ক্রিন কীবোর্ড ব্যবহার করুন"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"ফিজিক্যাল কীবোর্ড সক্রিয় থাকার সময় এটিকে স্ক্রীনে রাখুন"</string>
<string name="bounce_keys" msgid="7419450970351743904">"বাউন্স \'কী\'"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> মিলি সেকেন্ডের মধ্যে একই কী বারবার প্রেস করলে তা কীবোর্ড উপেক্ষা করে"</string>
<string name="slow_keys" msgid="2891452895499690837">"স্লো কী"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"তা সত্ত্বেও চালিয়ে যান"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"বাতিল করুন"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"বড় করে দেখার সেটিংস"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"১টি আঙুল দিয়ে ম্যাগনিফায়ার সরান"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"স্ক্রিনের মধ্যে যে কোনও জায়গায় সরাতে ১টি আঙুল দিয়ে টেনে আনুন"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"\'বড় করে দেখা\' এলাকা একটি আঙুল দিয়ে টেনে সরান।"</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"\'বড় করে দেখা\' এলাকা দুটি আঙুল দিয়ে টেনে সরান।"</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"শুধুমাত্র স্ক্রিনের বড় করে দেখানো অংশে উপলভ্য থাকে না"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"জুম করার জন্য বোতামে ট্যাপ করুন"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"কন্টেন্ট আরও বড় সাইজে দেখার জন্য, স্ক্রিনে দ্রুত জুম বাড়ান"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>জুম ইন করতে:</b><br/> {0,number,integer}. \'বড় করে দেখা\' ফিচার চালু করার জন্য শর্টকাট ব্যবহার করুন<br/> {1,number,integer}। স্ক্রিনে ট্যাপ করুন<br/> {2,number,integer}। স্ক্রিনের চারদিকে ঘোরাতে ২টি আঙুল দিয়ে টেনে আনুন<br/> {3,number,integer}। জুম অ্যাডজাস্ট করার জন্য ২টি আঙুল দিয়ে পিঞ্চ করুন<br/> {4,number,integer}। \'বড় করে দেখা\' ফিচার বন্ধ করার জন্য শর্টকাট ব্যবহার করুন<br/><br/> <b>সাময়িকভাবে জুম ইন করতে:</b><br/> {0,number,integer}। আপনার \'বড় করে দেখা\' ফিচারের ধরন ফুল স্ক্রিনে সেট হয়েছে কিনা ভাল করে দেখে নিন<br/> {1,number,integer}। \'বড় করে দেখা\' ফিচার চালু করতে শর্টকাট ব্যবহার করুন<br/> {2,number,integer}। স্ক্রিনের যেকোনও জায়গা টাচ করে ধরে থাকুন<br/> {3,number,integer}। স্ক্রিনের চারদিকে ঘোরাতে আঙুল দিয়ে টেনে আনুন<br/> {4,number,integer}। \'বড় করে দেখা\' ফিচার বন্ধ করতে স্ক্রিনের উপর থেকে আঙুল সরিয়ে নিন"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>জুম-ইন করতে:</b><br/> {0,number,integer}. \'বড় করে দেখা\' ফিচার চালু করতে শর্টকাট ব্যবহার করুন<br/> {1,number,integer}. স্ক্রিনে ট্যাপ করুন<br/> {2,number,integer}. স্ক্রিনের মধ্যে যে কোনও জায়গায় সরাতে ২টি আঙুল দিয়ে টেনে আনুন<br/> {3,number,integer}. জুম অ্যাডজাস্ট করার জন্য ২টি আঙুল দিয়ে পিঞ্চ করুন zoom<br/> {4,number,integer}. \'বড় করে দেখা\' ফিচার বন্ধ করতে শর্টকাট ব্যবহার করুন<br/><br/> এছাড়াও সাময়িকভাবে জুম-ইন এবং আরও অনেক কিছু করুন।"</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>জুম-ইন করতে:</b><br/> {0,number,integer}. \'বড় করে দেখা\' ফিচার চালু করতে শর্টকাট ব্যবহার করুন<br/> {1,number,integer}. স্ক্রিনে ট্যাপ করুন<br/> {2,number,integer}. স্ক্রিনের মধ্যে যে কোনও জায়গায় সরাতে ১টি অথবা ২টি আঙুল দিয়ে টেনে আনুন<br/> {3,number,integer}. জুম অ্যাডজাস্ট করার জন্য ২টি আঙুল দিয়ে পিঞ্চ করুন zoom<br/> {4,number,integer}. \'বড় করে দেখা\' ফিচার বন্ধ করতে শর্টকাট ব্যবহার করুন<br/><br/> এছাড়াও সাময়িকভাবে জুম-ইন এবং আরও অনেক কিছু করুন।"</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"ম্যাগনিফিকেশন চালু করা থাকলে, আপনি স্ক্রিনে জুম বাড়াতে পারবেন।\n\n"<b>"জুম করতে"</b>", ম্যাগনিফিকেশন চালু করে স্ক্রিনের যেকোনও জায়গায় ট্যাপ করুন।\n"<ul><li>"• স্ক্রল করতে ২ বা তার বেশি আঙ্গুল দিয়ে টানুন"</li>\n<li>"• জুম অ্যাডজাস্ট করতে ২ বা তার বেশি আঙ্গুল দিয়ে পিঞ্চ করুন"</li></ul>\n\n<b>"সাময়িকভাবে জুম করতে"</b>", ম্যাগনিফিকেশন চালু করে স্ক্রিনের যেকোনও জায়গায় টাচ করে ধরে থাকুন।\n"<ul><li>"• টেনে স্ক্রিনের বিভিন্ন জায়গায় সরান"</li>\n<li>"• জুম কমাতে স্ক্রিন থেকে আঙ্গুল তুলে নিন"</li></ul>\n\n"কীবোর্ড বা নেভিগেশন বারে আপনি জুম করতে পারবেন না।"</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>টি মধ্যে <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> নম্বর পৃষ্ঠা"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"অ্যাক্সেসিবিলিটি বোতামের শর্টকার্ট"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"মোড তৈরি করুন"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"কাস্টম"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"বিরক্তিকর কন্টেন্ট বন্ধ করা"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'বিরক্ত করবে না\' মোড চালু করুন"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"অ্যালার্ম ও মিডিয়া সাউন্ড বাধা দিতে পারবে"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"একটি শিডিউল সেট করুন"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"শিডিউল করুন"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ঘণ্টা, <xliff:g id="MINUTES">%2$d</xliff:g> মিনিট"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"অটোমেটিক চালু করুন"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"সময়সূচি"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"নির্দিষ্ট সময়ে ফোন সাইলেন্ট করুন"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"\'বিরক্ত করবে না\' মোডের নিয়ম সেট-আপ করুন"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"বিজ্ঞপ্তি খুলুন"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"বিজ্ঞপ্তি স্নুজ করার অনুমতি দিন"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"অ্যাপ আইকনে বিজ্ঞপ্তির ডট"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"বাবল"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"বাবল"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"বাবল আইকন হিসেবে হোম স্ক্রিনে কথোপকথন যোগ করা"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"সব"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"অ্যাপ ওভাররাইডের অনুমতি দিন"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"যে অ্যাপগুলি \'বিরক্ত করবে না\' মোড এড়িয়ে নিজের কাজ করতে পারে"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"আরও অ্যাপ বেছে নিন"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"কেস"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ব্যাটারি"</string>
<string name="settings_panel_title" msgid="346363079938069215">"সেটিংস প্যানেল"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"ফোর্স ডেস্কটপ মোড"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"সেকেন্ডারি ডিসপ্লেতে ফোর্স এক্সপেরিমেন্টাল ডেস্কটপ মোড চালু করা আছে"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"ফ্রিফর্ম উইন্ডো চালু করুন"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"ফ্রিফর্ম উইন্ডোর জন্য সহায়তা চালু করুন।"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"সেকেন্ড ডিসপ্লেতে ফ্রিফর্ম উইন্ডো চালু করুন"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"শুধুমাত্র সেকেন্ডারি ডিসপ্লেতে ফ্রিফর্ম উইন্ডো চালু করুন।"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ছোট বড় করা যায় না এমন একাধিক উইন্ডো চালু করুন"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"একাধিক উইন্ডোয় ছোট বড় করা যায় না এমন অ্যাপের অনুমতি দিন"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"ফোর্স-ডার্ক ফিচার ওভাররাইড করুন"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"১৬ কেবি ডেভেলপার বিকল্প ব্যবহার করার আগে, এই ডিভাইসের ডেটা পার্টিশন ext4-এ পরিবর্তন করতে হবে। এই মোডে সফ্টওয়্যার ইন্টিগ্রিটির গ্যারেন্টি দেওয়া যায় না এবং বুটলোডার আনলক থাকা অবস্থায় ফোনে স্টোর করে রাখা কোনও ডেটা সুরক্ষিত নাও থাকতে পারে। ১৬ কেবি ডেভেলপার বিকল্প অ্যাক্টিভেট করে দিলে, এর পরে ডিভাইসটি আরও একবার রিবুট করতে হবে। আপনি এই মোড থাকলে, একবার রিবুট করার মাধ্যমে ৪ কেবি এবং ১৬ কেবি মোডের মধ্যে সুইচ করতে পারবেন। এইসব মোডে কিছু ফিচার বন্ধ করে দেওয়া হবে, তাই কিছু অ্যাপ্লিকেশন কাজ নাও করতে পারে। ডিভাইসটি প্রোডাকশন মোডে রাখতে, আপনাকে ৪ কেবি মোডে ফিরে আসতে হবে ও তারপরে বুটলোডার লক করতে হবে যেটি ডিভাইসকে ফ্যাক্টরি রিসেট করবে। ডিভাইসটি Android-এ বুট করা হয়ে গেলে, ডেভেলপার বিকল্পে OEM আনলক করা বন্ধ করুন। নিশ্চিত করার পরে ডিভাইস ওয়াইপ করা হবে এবং ফাইল সিস্টেম ext4-এ পরিবর্তিত হয়ে যাবে। এটি হয়ে যাওয়ার পরে, আবার ১৬ কেবি মোড চালু করুন।"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"সব ডেটা মুছুন"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ডেটা পার্টিশানকে ext4 ফর্ম্যাটে আবার ফর্ম্যাট করা ও ওয়াইপ করা যায়নি।"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"বুটলোডার আনলক করতে হবে"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"১৬ কেবি ডেভেলপার বিকল্প ব্যবহার করতে হলে, এই ডিভাইসের জন্য বুটলোডার আনলক করতে হবে। এই মোডে সফ্টওয়্যার ইন্টিগ্রিটির গ্যারেন্টি দেওয়া যায় না এবং বুটলোডার আনলক থাকা অবস্থায় ফোনে স্টোর করে রাখা কোনও ডেটা সুরক্ষিত নাও থাকতে পারে। ১৬ কেবি মোড অ্যাক্টিভেট করে দিলে, ব্যবহারকারীর সব ডেটা ও সেটিংস ওয়াইপ হয়ে যাবে। বুটলোডার আনলক হয়ে গেলে, ১৬ কেবি মোড বিকল্প চালু করার জন্য ডিভাইস দুবার রিবুট করার প্রয়োজন হয়। আপনি এই মোড থাকলে, একবার রিবুট করার মাধ্যমে ৪ কেবি এবং ১৬ কেবি মোডের মধ্যে সুইচ করতে পারবেন। এইসব মোডে কিছু ফিচার বন্ধ করে দেওয়া হবে, তাই কিছু অ্যাপ্লিকেশন কাজ নাও করতে পারে। ডিভাইসটিকে আবার প্রোডাকশন মোডে রাখতে, আপনাকে ৪ কেবি মোডে ফিরে আসতে হবে ও তারপরে OEM/বুটলোডার লক করতে হবে (যেটি ডিভাইসকে ফ্যাক্টরি রিসেট করবে)। বুটলোডার আনলক করে আবার চেষ্টা করুন। বুটলোডার কীভাবে আনলক করবেন তার নির্দেশাবলী এখানে দেখতে পারেন <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"৪ কেবি পেজ-অ্যাগনোস্টিক মোড ব্যবহার করা হচ্ছে"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"আপনি পেজ-অ্যাগনোস্টিক মোডের ৪ কেবি মোডে আছেন। এই মোডে সফ্টওয়্যার ইন্টিগ্রিটির গ্যারেন্টি দেওয়া যায় না এবং বুটলোডার আনলক থাকা অবস্থায় ফোনে স্টোর করে রাখা কোনও ডেটা সুরক্ষিত নাও থাকতে পারে। এইসব মোডে কিছু ফিচার বন্ধ করে দেওয়া হবে, তাই কিছু অ্যাপ্লিকেশন কাজ নাও করতে পারে। প্রোডাকশন মোডে আবার যেতে চাইলে, অবশ্যই ডিভাইসের বুটলোডার লক করতে হবে। আরও পড়তে ট্যাপ করুন।"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"আপনি পেজ-অ্যাগনোস্টিক মোডের ৪ কেবি মোডে আছেন। এই মোডে সফ্টওয়্যার ইন্টিগ্রিটির গ্যারেন্টি দেওয়া যায় না এবং বুটলোডার আনলক থাকা অবস্থায় ফোনে স্টোর করে রাখা কোনও ডেটা সুরক্ষিত নাও থাকতে পারে। এইসব মোডে কিছু ফিচার বন্ধ করে দেওয়া হবে, তাই কিছু অ্যাপ্লিকেশন কাজ নাও করতে পারে। প্রোডাকশন মোডে আবার যেতে চাইলে, অবশ্যই ডিভাইসের বুটলোডার লক করতে হবে। এটি ডিভাইসটিকে আবার ফ্যাক্টরি রিসেট করবে এবং এটির প্রোডাকশন সেটিংস আগের মতো হয়ে যাবে। ডিভাইসটি Android-এ বুট করা হয়ে গেলে, ডেভেলপার বিকল্পে OEM আনলক করা বন্ধ করুন। ডিভাইসটি Android-এ বুট করা না গেলে বা স্থিতিশীল না হলে, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> সাম্প্রতিক ফ্যাক্টরি ইমেজের সাথে ডিভাইসটি আবার ফ্ল্যাশ করুন এবং \'ডিভাইস ওয়াইপ করুন\', \'বুটলোডার লক করুন\' ও \'সব পার্টিশন জোরপূর্বক ফ্ল্যাশ করুন\' বিকল্প বেছে নিন।"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"১৬ কেবি পেজ-অ্যাগনোস্টিক মোড ব্যবহার করা হচ্ছে"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"আপনি পেজ-অ্যাগনোস্টিক মোডের ১৬কেবি মোডে আছেন। এই মোডে সফ্টওয়্যার ইন্টিগ্রিটির গ্যারান্টি দেওয়া যায় না এবং বুটলোডার আনলক করা অবস্থায় ফোনে সেভ করে রাখা ডেটা নিয়ে ঝুঁকি থাকতে পারে। এই মোডে কিছু ফিচার বন্ধ করা থাকে, তাই কোনও কোনও অ্যাপ্লিকেশন কাজ নাও করতে পারে। প্রোডাকশন মোডে আবার যেতে চাইলে, আপনাকে অবশ্যই ৪কেবি মোডে ফিরে যেতে হবে ও তারপরে ডিভাইসের বুটলোডার লক করতে হবে। আরও পড়তে ট্যাপ করুন।"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"আপনি পেজ-অ্যাগনোস্টিক মোডের ১৬কেবি মোডে আছেন। এই মোডে সফ্টওয়্যার ইন্টিগ্রিটির গ্যারান্টি দেওয়া যায় না এবং বুটলোডার আনলক করা অবস্থায় ফোনে সেভ করে রাখা ডেটা নিয়ে ঝুঁকি থাকতে পারে। এই মোডে কিছু ফিচার বন্ধ করা থাকে, তাই কোনও কোনও অ্যাপ্লিকেশন কাজ নাও করতে পারে। প্রোডাকশন মোডে আবার যেতে চাইলে, আপনাকে অবশ্যই ৪কেবি মোডে ফিরে যেতে হবে ও তারপরে ডিভাইসের বুটলোডার লক করতে হবে। এটি ডিভাইসটিকে আবার ফ্যাক্টরি রিসেট করবে এবং এটির প্রোডাকশন সেটিংস আগের মতো হয়ে যাবে। ডিভাইস Android-এ বুট হয়ে গেলে, ডেভেলপার বিকল্প থেকে OEM আনলক বন্ধ করুন। ডিভাইসটি Android-এ বুট করা না গেলে বা স্থিতিশীল না হলে, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> থেকে সাম্প্রতিক ফ্যাক্টরি ইমেজের সাথে ডিভাইসটি আবার ফ্ল্যাশ করুন অথবা <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ব্যবহার করুন এবং \'ডিভাইস ওয়াইপ করুন\', \'বুটলোডার লক করুন\' ও \'সব পার্টিশন ফোর্স ফ্ল্যাশ করুন\' বিকল্প বেছে নিন।"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"১৬ কেবি পেজ-অ্যাগনোস্টিক মোড"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"আরও পড়ুন"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"সমস্যার রিপোর্টের পরিচালক"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"ট্যাবলেট ডক করা থাকলে, আপনি স্ক্রিনে কী কী দেখবেন তা বেছে নিন। স্ক্রিন সেভার ব্যবহার করার সময়, আপনার ডিভাইস ব্যাটারির চার্জ বেশি ব্যবহার করতে পারে।"</string>
<string name="customize_button_title" msgid="1110284655990203359">"কাস্টমাইজ করুন"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> কাস্টমাইজ করুন"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ফ্রিফর্ম সহায়তা চালু করার জন্য, ডিভাইস রিবুট করতে হবে।"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"সেকেন্ডারি ডিসপ্লেতে ডেস্কটপ মোড জোর করে চালানোর জন্য রিবুট করতে হবে।"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"ফ্রিফর্ম উইন্ডো সহায়তার লিগ্যাসি মোড চালু করতে রিবুট করতে হবে।"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"ফ্রিফর্ম উইন্ডো সহায়তা পরিবর্তন করতে রিবুট করতে হবে।"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"সেকেন্ডারি ডিসপ্লেতে ফ্রিফর্ম উইন্ডো জোর করে চালু করতে রিবুট করতে হবে।"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"এখনই রিবুট করুন"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"পরে রিবুট করুন"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"স্পেশিয়ল অডিও"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index c66bcd5..98eed7c 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Ovo je potrebno jer je provjera identiteta uključena"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opcije"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Pristupačnost"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fizička tastatura"</string>
- <string name="show_ime" msgid="4334255501724746849">"Koristi tastaturu na ekranu"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Zadržava se na ekranu dok je fizička tastatura aktivna"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Slučajni pritisci tipki"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Tastatura zanemaruje brzo ponavljana pritiskanja iste tipke u rasponu od <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Sporo reagiranje tipki"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ipak nastavi"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Otkaži"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Postavke uvećavanja"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Premjestite povećalo s 1 prstom"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Prevlačite s 1 prstom da se krećete na ekranu"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Pomaknite područje uvećanja prevlačenjem prstom."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Pomaknite područje uvećavanja prevlačenjem s dva prsta."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nije dostupno dok se uvećava samo dio ekrana"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Dodirnite dugme da zumirate"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Brzo uvećajte ekran da sadržaj postane veći"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Da uvećate:</b><br/> {0,number,integer}. Koristite prečicu da pokrenete uvećavanje.<br/> {1,number,integer}. Dodirnite ekran.<br/> {2,number,integer}. Prevlačite s 2 prsta da se krećete po ekranu.<br/> {3,number,integer}. Uhvatite s 2 prsta da podesite zumiranje.<br/> {4,number,integer}. Koristite prečicu da zaustavite uvećavanje.<br/><br/> <b>Da uvećate privremeno:</b><br/> {0,number,integer}. Provjerite je li vrsta uvećavanja postavljena na prikaz preko cijelog ekrana.<br/> {1,number,integer}. Koristite prečicu da pokrenete uvećavanje.<br/> {2,number,integer}. Dodirnite i zadržite bilo gdje na ekranu.<br/> {3,number,integer}. Prevlačite prstom da se krećete po ekranu.<br/> {4,number,integer}. Podignite prst da zaustavite uvećavanje."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Da uvećate:</b><br/> {0,number,integer}. Upotrijebite prečicu da pokrenete uvećavanje<br/> {1,number,integer}. Dodirnite ekran<br/> {2,number,integer}. Prevlačite s 2 prsta da se krećete na ekranu<br/> {3,number,integer}. Spojite 2 prsta da podesite zumiranje<br/> {4,number,integer}. Upotrijebite prečicu da zaustavite uvećavanje<br/><br/> Možete i privremeno uvećavati i drugo."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Da uvećate:</b><br/> {0,number,integer}. Upotrijebite prečicu da pokrenete uvećavanje<br/> {1,number,integer}. Dodirnite ekran<br/> {2,number,integer}. Prevlačite s 1 ili 2 prsta da se krećete na ekranu<br/> {3,number,integer}. Spojite 2 prsta da podesite zumiranje<br/> {4,number,integer}. Upotrijebite prečicu da zaustavite uvećavanje<br/><br/> Možete i privremeno uvećavati i drugo."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kada je uvećavanje uključeno, možete uvećavati sadržaj na ekranu.\n\n"<b>"Da zumirate"</b>", pokrenite uvećavanje, a zatim dodirnite ekran bilo gdje.\n"<ul><li>"Prevucite dva ili više prstiju za klizanje"</li>\n<li>"Uhvatite s dva ili više prstiju za podešavanje zumiranja"</li></ul>\n\n<b>"Za privremeno zumiranje"</b>" pokrenite uvećanje, a zatim dodirnite ekran bilo gdje i zadržite.\n"<ul><li>"Prevucite za kretanje po ekranu"</li>\n<li>"Podignite prst za umanjivanje"</li></ul>\n\n"Nije moguće uvećati na tastaturi ili traci za navigaciju."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Stranica <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> od <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Prečica dugmeta za pristupačnost"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Kreirajte način rada"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Prilagođeno"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ograničite ometanja"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Uključi način rada Ne ometaj"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Zvuci alarma i medija mogu prekinuti"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Postavite raspored"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Raspored"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Automatski uključi"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Raspored"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Utišaj telefon u određeno vrijeme"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Postavite pravila za način rada Ne ometaj"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"otvaranje obavještenja"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Dozvoli odgađanje obavještenja"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Tačka za obavještenja na ikoni aplikacije"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Paketi obavijesti"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Oblačići"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Oblačići"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Prikaži ovaj razgovor u oblačiću"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Sve"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Dozvolite aplikacijama da zanemaruju"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije koje vas mogu prekinuti"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Odaberite još aplikacija"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Maska"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterija"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Ploča s postavkama"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Nametni način rada na računaru"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Nametanje eksperimentalnog načina rada na računaru na sekundarnim ekranima"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Omogući prilagodljive prozore"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Omogućite podršku za prilagodljive prozore."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Omogući prilagodljive prozore na drugom ekranu"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Omogućite prilagodljive prozore samo na sekundarnom ekranu."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Omogući aplikacije nepromjenjive veličine u više prozora"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Omogućava prikaz aplikacija nepromjenjive veličine u više prozora"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Nadjačaj nametanje tamne teme"</string>
@@ -4922,26 +4923,23 @@
<string name="enable_16k_pages" msgid="8001470927566110689">"Pokreni uz veličinu stranice od 16 kB"</string>
<string name="enable_16k_pages_summary" msgid="1964363364670306912">"Pokrenite uređaj s jezgrom podržanom za str. od 16 kB"</string>
<string name="confirm_enable_16k_pages_title" msgid="611010487387251491">"Pređite iz načina rada od 4 kB u način rada od 16 kB"</string>
- <string name="confirm_enable_16k_pages_text" msgid="6129208614283750541">"Nalazite se u načinu rada neovisnom o veličini stranice s jezgrom od 4 kB i prebacujete se u način rada od 16 kB. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. To će ponovo pokrenuti uređaj. Neke funkcije će biti onemogućene u ovim načinima, pa neke aplikacije možda neće funkcionirati. Da vratite uređaj u proizvodni način rada, trebate se vratiti u način rada od 4 kB i zaključati program za učitavanje operativnog sistema, čime se uređaj vraća na fabričke postavke. Nakon što se uređaj uspješno pokrene u Androidu, onemogućite OEM otključavanje u Opcijama za programere."</string>
+ <string name="confirm_enable_16k_pages_text" msgid="6129208614283750541">"Nalazite se u načinu rada neovisnom o veličini stranice s jezgrom od 4 kB i prebacujete se u način rada od 16 kB. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. To će ponovo pokrenuti uređaj. Neke funkcije će biti onemogućene u ovim načinima rada, pa neke aplikacije možda neće funkcionirati. Da vratite uređaj u proizvodni način rada, trebate se vratiti u način rada od 4 kB i zaključati program za učitavanje operativnog sistema, čime se uređaj vraća na fabričke postavke. Nakon što se uređaj uspješno pokrene u Androidu, onemogućite OEM otključavanje u Opcijama za programere."</string>
<string name="confirm_enable_4k_pages_title" msgid="3210360137887034659">"Promijenite iz načina rada od 16 kB u način rada od 4 kB"</string>
- <string name="confirm_enable_4k_pages_text" msgid="155070605667160083">"Nalazite se u načinu rada neovisnom o veličini stranice s jezgrom od 16 kB i prebacujete se u način rada od 4 kB. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. To će ponovo pokrenuti uređaj. Neke funkcije će biti onemogućene u ovim načinima, pa neke aplikacije možda neće funkcionirati. Da vratite uređaj u proizvodni način rada, morate zaključati program za učitavanje operativnog sistema, čime se uređaj vraća na fabričke postavke. Nakon što se uređaj uspješno pokrene u Androidu, onemogućite OEM otključavanje u Opcijama za programere."</string>
+ <string name="confirm_enable_4k_pages_text" msgid="155070605667160083">"Nalazite se u načinu rada neovisnom o veličini stranice s jezgrom od 16 kB i prebacujete se u način rada od 4 kB. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. To će ponovo pokrenuti uređaj. Neke funkcije će biti onemogućene u ovim načinima rada, pa neke aplikacije možda neće funkcionirati. Da vratite uređaj u proizvodni način rada, morate zaključati program za učitavanje operativnog sistema, čime se uređaj vraća na fabričke postavke. Nakon što se uređaj uspješno pokrene u Androidu, onemogućite OEM otključavanje u Opcijama za programere."</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="confirm_format_ext4_title" msgid="6696191800594435577">"Reformatirati uređaj na ext4? (potrebno je za način rada od 16 kB)"</string>
- <string name="confirm_format_ext4_text" msgid="7940372488624630214">"Particiju s podacima na uređaju treba konvertirati u ext4 prije korištenja opcije za programere sa 16 kB. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. Aktiviranje opcije sa 16 kB zahtijevat će još jedno ponovno pokretanje nakon toga. Kada ste u ovom načinu rada, možete se prebacivati iz načina rada od 4 kB u način rada od 16 kB jednim ponovnim pokretanjem. Neke funkcije će biti onemogućene u ovim načinima, pa neke aplikacije možda neće funkcionirati. Da vratite uređaj u proizvodni način rada, trebate se vratiti u način rada od 4 kB a zatim zaključati program za učitavanje operativnog sistema, čime se uređaj vraća na fabričke postavke. Nakon što se uređaj uspješno pokrene u Androidu, onemogućite OEM otključavanje u Opcijama za programere. Podaci na uređaju će se uništiti, a sistem fajlova promijeniti u ext4 nakon potvrde. Nakon što se to završi, vratite se da ponovo omogućite 16 kB."</string>
+ <string name="confirm_format_ext4_text" msgid="7940372488624630214">"Particiju s podacima na uređaju treba konvertirati u ext4 prije korištenja opcije za programere sa 16 kB. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. Aktiviranje opcije sa 16 kB zahtijevat će još jedno ponovno pokretanje nakon toga. Kada ste u ovom načinu rada, možete se prebacivati iz načina rada od 4 kB u način rada od 16 kB jednim ponovnim pokretanjem. Neke funkcije će biti onemogućene u ovim načinima rada, pa neke aplikacije možda neće funkcionirati. Da vratite uređaj u proizvodni način rada, trebate se vratiti u način rada od 4 kB a zatim zaključati program za učitavanje operativnog sistema, čime se uređaj vraća na fabričke postavke. Nakon što se uređaj uspješno pokrene u Androidu, onemogućite OEM otključavanje u Opcijama za programere. Podaci na uređaju će se uništiti, a sistem fajlova promijeniti u ext4 nakon potvrde. Nakon što se to završi, vratite se da ponovo omogućite 16 kB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Potpuno izbriši sve podatke"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Reformatiranje i uništavanje podataka na particiji s podacima za ext4 nije uspjelo."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Potrebno je otključavanje programa za učitavanje operativnog sistema"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Na ovom uređaju program za učitavanje operativnog sistema treba biti otključan prije korištenja opcije za programere sa 16 kB. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. Svi korisnički podaci i postavke će biti izbrisani kada se aktivira način rada od 16 kB. Kada se program za učitavanje operativnog sistema otključa, aktiviranje opcije od 16 kB zahtijevat će dva ponovna pokretanja. Kada ste u ovom načinu rada, možete se prebacivati iz načina rada od 4 kB u način rada od 16 kB jednim ponovnim pokretanjem. Neke funkcije će biti onemogućene u ovim načinima rada, pa neke aplikacije možda neće funkcionirati. Da vratite uređaj u proizvodni način rada, trebate vratiti u način rada od 4 kB a zatim zaključati OEM/program za učitavanje operativnog sistema (čime se uređaj vraća na fabričke postavke). Otključajte program za učitavanje operativnog sistema i pokušajte ponovo. Uputstva za ovo potražite na <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Korištenje načina rada od 4 kB neovisnog o veličini stranice"</string>
- <string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"U načinu ste rada od 4 kB neovisnom o veličini stranice. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. Neke funkcije će biti onemogućene u ovim načinima, pa neke aplikacije možda neće funkcionirati. Da ponovo uđete u proizvodni način rada, morate zaključati program za učitavanje operativnog sistema na uređaju. Dodirnite da pročitate više."</string>
- <string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"U načinu ste rada od 4 kB neovisnom o veličini stranice. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. Neke funkcije će biti onemogućene u ovim načinima, pa neke aplikacije možda neće funkcionirati. Da ponovo uđete u proizvodni način rada, morate zaključati program za učitavanje operativnog sistema na uređaju. To će ponovo vratiti uređaj na fabričke postavke i vratiti proizvodne postavke. Nakon što se uređaj uspješno pokrene u Androidu, onemogućite OEM otključavanje u Opcijama za programere. Ako se uređaj ne pokrene u Androidu ili ako je nestabilan, reprogramirajte uređaj najnovijim fabričkim slikama sa <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ili upotrijebite <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> i odaberite \"Uništi sve podatke na uređaju\"\', \"Zaključaj program za učitavanje operativnog sistema\" i \"Prisilno programiraj sve particije\"."</string>
+ <string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"U načinu ste rada od 4 kB neovisnom o veličini stranice. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. Neke funkcije će biti onemogućene u ovim načinima rada, pa neke aplikacije možda neće funkcionirati. Da ponovo uđete u proizvodni način rada, morate zaključati program za učitavanje operativnog sistema na uređaju. Dodirnite da pročitate više."</string>
+ <string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"U načinu ste rada od 4 kB neovisnom o veličini stranice. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. Neke funkcije će biti onemogućene u ovim načinima rada, pa neke aplikacije možda neće funkcionirati. Da ponovo uđete u proizvodni način rada, morate zaključati program za učitavanje operativnog sistema na uređaju. To će ponovo vratiti uređaj na fabričke postavke i vratiti proizvodne postavke. Nakon što se uređaj uspješno pokrene u Androidu, onemogućite OEM otključavanje u Opcijama za programere. Ako se uređaj ne pokrene u Androidu ili ako je nestabilan, reprogramirajte uređaj najnovijim fabričkim slikama sa <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ili upotrijebite <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> i odaberite \"Uništi sve podatke na uređaju\"\', \"Zaključaj program za učitavanje operativnog sistema\" i \"Prisilno programiraj sve particije\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Korištenje načina rada od 16 kB neovisnog o veličini stranice"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"U načinu ste rada od 16 kB neovisnom o veličini stranice. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. Neke funkcije će biti onemogućene u ovim načinima rada, pa neke aplikacije možda neće funkcionirati. Da ponovo uđete u proizvodni način rada, morate se vratiti u način rada od 4 kB i zatim otključati program za učitavanje operativnog sistema na uređaju. Dodirnite da pročitate više."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"U načinu ste rada od 16 kB neovisnom o veličini stranice. Integritet softvera se ne može garantirati u ovom načinu rada i svi podaci pohranjeni na telefonu dok je program za učitavanje operativnog sistema otključan bi mogli biti izloženi riziku. Neke funkcije će biti onemogućene u ovim načinima rada, pa neke aplikacije možda neće funkcionirati. Da ponovo uđete u proizvodni način rada, morate se vratiti u način rada od 4 kB i zatim otključati program za učitavanje operativnog sistema na uređaju. To će ponovo vratiti uređaj na fabričke postavke i vratiti proizvodne postavke. Nakon što se uređaj uspješno pokrene u Androidu, onemogućite OEM otključavanje u Opcijama za programere. Ako se uređaj ne pokrene u Androidu ili ako je nestabilan, reprogramirajte uređaj najnovijim fabričkim slikama sa <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ili upotrijebite <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> i odaberite \"Uništi sve podatke na uređaju\"\', \"Zaključaj program za učitavanje operativnog sistema\" i \"Prisilno programiraj sve particije\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Način rada od 16 kB neovisan o veličini stranice"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Pročitajte više"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Obrađivač izvještaja o greškama"</string>
@@ -5189,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Odaberite šta će se prikazivati na ekranu kada je tablet na priključnoj stanici. Uređaj može trošiti više energije kada se koristi čuvar ekrana."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Prilagodite"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Prilagodite <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Potrebno je ponovno pokretanje da se omogući podrška za slobodni oblik."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Potrebno je ponovno pokretanje da se nametne način rada računara na sekundarnim ekranima."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Potrebno je ponovno pokretanje da se omogući podrška za stare prilagodljive prozore."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Potrebno je ponovno pokretanje da se promijeni podrška za prilagodljive prozore."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Potrebno je ponovno pokretanje da se nametnu prilagodljivi prozori na sekundarnim ekranima."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Ponovo pokreni sada"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Ponovo pokreni kasnije"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorni zvuk"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 71b655b..6cb6f99 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Aquesta acció és necessària perquè la comprovació de la identitat està activada"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opcions"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilitat"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Teclat físic"</string>
- <string name="show_ime" msgid="4334255501724746849">"Utilitza el teclat en pantalla"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Mantén-lo en pantalla mentre el teclat físic està actiu"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Tecles de rebot"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"El teclat ignora les pulsacions repetides ràpidament de la mateixa tecla en un interval de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Tecles lentes"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continua igualment"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel·la"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configuració de l\'ampliació"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mou la lupa amb 1 dit"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arrossega 1 dit per moure\'t per la pantalla"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mou l\'àrea d\'ampliació arrossegant un dit."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mou l\'àrea d\'ampliació arrossegant dos dits."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"No està disponible mentre només s\'amplia una part de la pantalla"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Toca un botó per fer zoom"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Amplia la pantalla ràpidament per engrandir el contingut"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Per ampliar</b>:<br/> {0,number,integer}. Utilitza la drecera per iniciar l\'ampliació.<br/> {1,number,integer}. Toca la pantalla.<br/> {2,number,integer}. Arrossega 2 dits per moure\'t per la pantalla.<br/> {3,number,integer}. Pinça amb 2 dits per ajustar el zoom.<br/> {4,number,integer}. Utilitza la drecera per aturar l\'ampliació.<br/><br/> <b>Per ampliar temporalment</b>:<br/> {0,number,integer}. Assegura\'t que el tipus d\'ampliació estigui definit com a pantalla completa.<br/> {1,number,integer}. Utilitza la drecera per iniciar l\'ampliació.<br/> {2,number,integer}. Mantén premut qualsevol punt de la pantalla.<br/> {3,number,integer}. Arrossega un dit per moure\'t per la pantalla.<br/> {4,number,integer}. Aixeca el dit per aturar l\'ampliació."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Per ampliar</b>:<br/> {0,number,integer}. Utilitza una drecera per iniciar l\'ampliació.<br/> {1,number,integer}. Toca la pantalla.<br/> {2,number,integer}. Arrossega 2 dits per moure\'t per la pantalla.<br/> {3,number,integer}. Pinça amb 2 dits per ajustar el zoom.<br/> {4,number,integer}. Utilitza la drecera per aturar l\'ampliació.<br/><br/> També pots ampliar temporalment i més."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Per ampliar</b>:<br/> {0,number,integer}. Utilitza una drecera per iniciar l\'ampliació.<br/> {1,number,integer}. Toca la pantalla.<br/> {2,number,integer}. Arrossega 1 o 2 dits per moure\'t per la pantalla.<br/> {3,number,integer}. Pinça amb 2 dits per ajustar el zoom.<br/> {4,number,integer}. Utilitza la drecera per aturar l\'ampliació.<br/><br/> També pots ampliar temporalment i més."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Quan l\'opció d\'ampliació està activada, pots ampliar la pantalla.\n\n"<b>"Per ampliar-la"</b>", activa l\'opció i toca qualsevol punt de la pantalla.\n"<ul><li>"Arrossega dos o més dits per desplaçar-te."</li>\n<li>"Pinça amb dos o més dits per ajustar el zoom."</li></ul>\n\n<b>"Per fer zoom temporalment"</b>", activa l\'ampliació i mantén premut qualsevol punt de la pantalla.\n"<ul><li>"Arrossega per moure\'t per la pantalla."</li>\n<li>"Aixeca el dit per allunyar la pantalla."</li></ul>\n\n"No es pot ampliar el teclat ni la barra de navegació."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Pàgina <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Drecera del botó d\'accessibilitat"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Crea un mode"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalitzat"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Restringeix les interrupcions"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activa el mode No molestis"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Les alarmes i els sons multimèdia poden interrompre"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Defineix una programació"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programa"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Activa automàticament"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programació"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silencia en hores concretes"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Defineix les regles de No molestis"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"obre la notificació"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Permet posposar les notificacions"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Punt de notificació a la icona de l\'aplicació"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Paquets de notificacions"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bombolles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bombolles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostra aquesta conversa com a bombolla"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Tot"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permet que les aplicacions ignorin el mode No molestis"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicacions que poden interrompre"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecciona més aplicacions"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Funda"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Tauler de configuració"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Força el mode d\'escriptori"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Força el mode d\'escriptori experimental en pantalles secundàries"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Activa les finestres de format lliure"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Activa la compatibilitat amb les finestres de format lliure."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Activa finestres format lliure en pantalla secund."</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Activa les finestres de format lliure només a la pantalla secundària."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Activa la mida no ajustable al mode multifinestra"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permet les aplicacions de mida no ajustable al mode multifinestra"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Anul·la forçar el mode fosc"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"La partició de dades d\'aquest dispositiu s\'ha de convertir al format ext4 abans d\'utilitzar l\'opció per a desenvolupadors de 16 kB. No es pot garantir la integritat del programari en aquest mode, i les dades que estiguin emmagatzemades al dispositiu mentre el bootloader està desbloquejat poden estar en perill. Per activar l\'opció de 16 kB, caldrà que el dispositiu es reiniciï una vegada més. Quan estiguis en aquest mode, podràs alternar entre el mode de 4 kB i el mode de 16 kB amb un sol reinici. Com que es desactivaran algunes funcions en aquests modes, és possible que algunes aplicacions no funcionin. Per fer que el dispositiu torni al mode de producció, hauràs de tornar al mode de 4 kB i, a continuació, bloquejar el bootloader, que restablirà les dades de fàbrica del dispositiu. Quan el dispositiu s\'iniciï a Android correctament, desactiva el desbloqueig OEM a Opcions per a desenvolupadors. Es netejaran les dades del dispositiu i el sistema de fitxers es canviarà al format ext4 després de la confirmació. Quan es completi aquesta acció, torna i activa el mode de 16 kB de nou."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Esborra totes les dades"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"No s\'ha pogut canviar el format a ext4 ni netejar-ne la partició de dades."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Es requereix el desbloqueig del bootloader"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Aquest dispositiu ha de tenir el bootloader desbloquejat abans d\'utilitzar l\'opció per a desenvolupadors de 16 kB. No es pot garantir la integritat del programari en aquest mode, i les dades que estiguin emmagatzemades al dispositiu mentre el bootloader està desbloquejat poden estar en perill. En activar el mode de 16 kB, es netejaran totes les dades d\'usuari i opcions de configuració. Quan s\'hagi desbloquejat el bootloader, caldrà que el dispositiu es reiniciï dues vegades per activar l\'opció de 16 kB. Quan estiguis en aquest mode, podràs alternar entre el mode de 4 kB i el mode de 16 kB amb un sol reinici. Com que es desactivaran algunes funcions en aquests modes, és possible que algunes aplicacions no funcionin. Per fer que el dispositiu torni al mode de producció, hauràs de tornar al mode de 4 kB i, a continuació, bloquejar l\'OEM o el bootloader, que restablirà les dades de fàbrica del dispositiu. Desbloqueja el bootloader i torna-ho a provar. Pots consultar les instruccions per fer-ho a <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"S\'està utilitzant el mode independent de la pàgina de 4 kB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Estàs utilitzant l\'opció de 4 kB del mode independent de la pàgina. No es pot garantir la integritat del programari en aquest mode, i les dades que estiguin emmagatzemades al dispositiu mentre el bootloader està desbloquejat poden estar en perill. Com que es desactivaran algunes funcions en aquests modes, és possible que algunes aplicacions no funcionin. Per tornar a entrar al mode de producció, has de bloquejar el bootloader del dispositiu. Toca per obtenir més informació."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Estàs utilitzant l\'opció de 4 kB del mode independent de la pàgina. No es pot garantir la integritat del programari en aquest mode, i les dades que estiguin emmagatzemades al dispositiu mentre el bootloader està desbloquejat poden estar en perill. Com que es desactivaran algunes funcions en aquests modes, és possible que algunes aplicacions no funcionin. Per tornar a entrar al mode de producció, has de bloquejar el bootloader del dispositiu. Aquesta acció tornarà a restablir les dades de fàbrica del dispositiu i en restaurarà la configuració de producció. Quan el dispositiu s\'iniciï a Android correctament, desactiva el desbloqueig OEM a Opcions per a desenvolupadors. Si el dispositiu no es pot iniciar a Android o és inestable, torna a instal·lar-hi les darreres imatges de fàbrica des de <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> o utilitza <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> i selecciona Neteja el dispositiu, Bloqueja el bootloader i Força la instal·lació de totes les particions."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"S\'està utilitzant el mode independent de la pàgina de 16 kB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Estàs utilitzant l\'opció de 16 kB del mode independent de la pàgina. No es pot garantir la integritat del programari en aquest mode, i les dades que estiguin emmagatzemades al dispositiu mentre el bootloader està desbloquejat poden estar en perill. Com que es desactivaran algunes funcions en aquests modes, és possible que algunes aplicacions no funcionin. Per entrar al mode de producció de nou, has de tornar al mode de 4 kB i, a continuació, bloquejar el bootloader del dispositiu. Toca per obtenir més informació."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Estàs utilitzant l\'opció de 16 kB del mode independent de la pàgina. No es pot garantir la integritat del programari en aquest mode, i les dades que estiguin emmagatzemades al dispositiu mentre el bootloader està desbloquejat poden estar en perill. Com que es desactivaran algunes funcions en aquests modes, és possible que algunes aplicacions no funcionin. Per entrar al mode de producció de nou, has de tornar al mode de 4 kB i, a continuació, bloquejar el bootloader del dispositiu. Aquesta acció tornarà a restablir les dades de fàbrica del dispositiu i en restaurarà la configuració de producció. Quan el dispositiu s\'iniciï a Android correctament, desactiva el desbloqueig OEM a Opcions per a desenvolupadors. Si el dispositiu no es pot iniciar a Android o és inestable, torna a instal·lar-hi les darreres imatges de fàbrica des de <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> o utilitza <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> i selecciona Neteja el dispositiu, Bloqueja el bootloader i Força la instal·lació de totes les particions."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Mode independent de la pàgina de 16 kB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Més informació"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Gestor d\'informes d\'errors"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Tria què vols veure a la pantalla quan la tauleta estigui acoblada. És possible que el dispositiu utilitzi més energia si es fa servir un estalvi de pantalla."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personalitza"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personalitza <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Cal reiniciar per activar la compatibilitat amb la forma lliure."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Cal reiniciar per forçar el mode d\'escriptori en pantalles secundàries."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Cal reiniciar per activar la compatibilitat amb les finestres de format lliure heretades."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Cal reiniciar per canviar la compatibilitat amb les finestres de format lliure."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Cal reiniciar per forçar les finestres de format lliure en pantalles secundàries."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reinicia ara"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reinicia més tard"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Àudio espacial"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index a9fe56c..0b809ea 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Je to potřeba, protože je zapnutá kontrola identity"</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>
@@ -611,11 +612,11 @@
<string name="private_space_hide_apps_summary" msgid="4418722947376042418">"Můžete si skrýt nebo uzamknout soukromé aplikace v odděleném prostoru. Vyhrazený účet Google zajistí lepší zabezpečení."</string>
<string name="private_space_setup_sub_header" msgid="550476876393954356">"Jak to funguje"</string>
<string name="private_space_separate_account_text" msgid="790319706810190320"><b>"Vytvořte si pro prostor účet Google"</b>\n"Když použijete vyhrazený účet, pomůže to předejít zobrazování synchronizovaných souborů, fotografií a e‑mailů mimo prostor"</string>
- <string name="private_space_protected_lock_text" msgid="9123250938334372735"><b>"Nastavte si zámek"</b>\n"Prostor můžete uzamknout, aby ho ostatní nemohli otevřít."</string>
+ <string name="private_space_protected_lock_text" msgid="9123250938334372735"><b>"Nastavte si zámek"</b>\n"Prostor můžete uzamknout, aby ho ostatní nemohli otevřít"</string>
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Nainstalujte aplikace"</b>\n"Nainstalujte aplikace, které chcete mít soukromé ve svém prostoru"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Upozornění"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Když prostor uzamknete, aplikace se zastaví"</b>\n"Když prostor uzamknete, aplikace v něm se zastaví a nebudete od nich dostávat oznámení"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Soukromé prostory nejsou vhodné pro aplikace, které potřebují běžet na pozadí nebo odesílat kritická upozornění, jako jsou lékařské aplikace. Oznámení a aktivita na pozadí se totiž při uzamčení prostoru zastaví.\n\nKdyž 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_apps_permission_text" msgid="4416201648436201393">"Soukromé prostory nejsou vhodné pro aplikace, které potřebují běžet na pozadí nebo odesílat kritická upozornění (například lékařské aplikace). Oznámení a aktivita na pozadí se totiž při uzamčení prostoru zastaví.\n\nKdyž 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_settings_footer_text" msgid="3742468470394835356">"Soukromé prostory nejsou vhodné pro aplikace, které potřebují běžet na pozadí nebo odesílat kritická upozornění, jako jsou lékařské aplikace. Oznámení a aktivita na pozadí se totiž při uzamčení prostoru zastaví.\n\nKdyž je soukromý prostor uzamčen, aplikace v něm se nezobrazují ve správci oprávnění, na panelu ochrany soukromí ani v jiných nastaveních.\n\nSoukromý prostor nelze obnovit do nového zařízení. Pokud ho budete chtít používat na jiném zařízení, budete si na něm muset nastavit další prostor.\n\nDo soukromého prostoru se může dostat kdokoli, kdo zařízení připojí k počítači nebo do zařízení nainstaluje škodlivé aplikace."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Další informace o soukromém prostoru"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Bude to chvíli trvat"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Možnosti"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Přístupnost"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fyzická klávesnice"</string>
- <string name="show_ime" msgid="4334255501724746849">"Použít softwarovou klávesnici"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Ponechat na obrazovce, když je aktivní fyzická klávesnice"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Ignorovat opakovaná stisknutí"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Klávesnice ignoruje opakovaná stisknutí jedné klávesy do <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Zpomalení kláves"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Přesto pokračovat"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Zrušit"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nastavení zvětšení"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Jedním prstem lupu posunete"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Přetažením prstu se můžete pohybovat po obrazovce"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Oblast zvětšení posunete přetažením jedním prstem."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Oblast zvětšení posunete přetažením dvěma prsty."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Při zvětšení pouze části obrazovky není k dispozici"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Přiblížení zobrazení klepnutím na tlačítko"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Obrazovku si můžete rychle přiblížit, aby byl obsah větší."</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Přiblížení:</b><br/> {0,number,integer}. Zvětšení spusťte pomocí zkratky.<br/> {1,number,integer}. Klepněte na obrazovku.<br/> {2,number,integer}. Po obrazovce se pohybujte přetažením dvou prstů.<br/> {3,number,integer}. Přiblížení upravte stažením a roztažením dvou prstů.<br/> {4,number,integer}. Zvětšení ukončete pomocí zkratky.<br/><br/> <b>Dočasné přiblížení:</b><br/> {0,number,integer}. Zkontrolujte, zda je typ zvětšení nastaven na celou obrazovku.<br/> {1,number,integer}. Zvětšení spusťte pomocí zkratky.<br/> {2,number,integer}. Podržte jakékoli místo na obrazovce.<br/> {3,number,integer}. Po obrazovce se pohybujte přetažením prstu.<br/> {4,number,integer}. Zvětšení ukončete zvednutím prstu."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Přiblížení:</b><br/> {0,number,integer}. Použijte zkratku k zahájení zvětšování.<br/> {1,number,integer}. Klepněte na obrazovku.<br/> {2,number,integer}. Přetažením dvěma prsty se pohybujte po obrazovce.<br/> {3,number,integer}. Stažením a roztažením dvou prstů upravte přiblížení.<br/> {4,number,integer}. Pomocí zkratky zvětšení ukončete.<br/><br/> Můžete také obsah přiblížit dočasně a využít další funkce."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Přiblížení:</b><br/> {0,number,integer}. Použijte zkratku k zahájení zvětšování.<br/> {1,number,integer}. Klepněte na obrazovku.<br/> {2,number,integer}. Přetažením jedním nebo dvěma prsty se pohybujte po obrazovce.<br/> {3,number,integer}. Stažením a roztažením dvou prstů upravte přiblížení.<br/> {4,number,integer}. Pomocí zkratky zvětšení ukončete.<br/><br/> Můžete také obsah přiblížit dočasně a využít další funkce."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Když je zapnuté zvětšení, můžete přibližovat obsah na obrazovce.\n\n"<b>"Chcete-li obsah přiblížit"</b>", spusťte zvětšení a poté klepněte kamkoliv na obrazovku.\n"<ul><li>"Přetažením dvěma nebo více prsty můžete obsah posouvat."</li>\n<li>"Stažením nebo roztažením dvou či více prstů upravíte přiblížení."</li></ul>\n\n<b>"Chcete-li obsah přiblížit dočasně"</b>", spusťte zvětšení a poté se dotkněte libovolného místa na obrazovce a podržte ho.\n"<ul><li>"Přetažením se můžete pohybovat po obrazovce."</li>\n<li>"Zvednutím prstu zobrazení vrátíte do původního stavu."</li></ul>\n\n"Na klávesnici a navigačním panelu přiblížení není k dispozici."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Strana <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> z <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Zkratka tlačítka přístupnosti"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Vytvoření režimu"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Vlastní"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Omezení vyrušení"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Zapněte funkci Nerušit"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Vyrušovat mohou budíky a zvuky médií"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Nastavení plánu"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Plán"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Zapnout automaticky"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Plán"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Ztlumit telefon v určitou dobu"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Nastavit pravidla režimu Nerušit"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"otevřít oznámení"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Povolit odložení oznámení"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Puntík s oznámením na ikoně aplikace"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Balíčky oznámení"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubliny"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubliny"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Zobrazovat tuto konverzaci jako bublinu"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Vše"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Povolit přepisování aplikací"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikace, které smí vyrušovat"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Vybrat další aplikace"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Hlavní díl"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterie"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel nastavení"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Vynutit režim počítače"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Na sekundárních displejích vynutí experimentální režim počítače"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktivovat okna s volným tvarem"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Aktivuje podporu oken s volným tvarem."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Aktivovat okna s volným tvarem na druhém displeji"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Aktivuje okna s volným tvarem pouze na sekundárním displeji."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktivovat neměnnou velikost v režimu několika oken"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Povolí aplikace s neměnnou velikostí v režimu několika oken"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Přepsat vynucení tmavého režimu"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Před použitím 16KB možnosti pro vývojáře je potřeba převést datový oddíl tohoto zařízení na systém souborů ext4. V tomto režimu nelze zaručit integritu softwaru a veškerá data uložená v telefonu při odemknutém bootloaderu mohou být ohrožena. K aktivaci 16KB režimu pak bude potřeba zařízení restartovat ještě jednou. Po jeho aktivaci pak bude k přepnutí mezi 4KB a 16KB režimem stačit pouze jeden restart. Některé funkce budou v těchto režimech zakázány, takže některé aplikace nemusí fungovat. Pokud budete chtít zařízení vrátit do produkčního režimu, budete systém muset přepnout zpět do 4KB režimu a uzamknout bootloader, čímž zařízení resetujete do továrního nastavení. Až se systém Android v zařízení úspěšně spustí, vypněte v sekci Pro vývojáře možnost Odemknutí OEM. Po potvrzení se zařízení vymaže a systém souborů se změní na ext4. Po dokončení se vraťte a aktivujte 16KB režim znovu."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Vymazat všechna data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Přeformátování na ext4 a nevratné vymazání datového oddílu se nezdařilo."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Je vyžadováno odemknutí bootloaderu"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"K použití možnosti 16KB režimu pro vývojáře musí mít zařízení odemknutý bootloader. V tomto režimu nelze zaručit integritu softwaru a veškerá data uložená v telefonu při odemknutém bootloaderu mohou být ohrožena. Při aktivaci 16KB režimu se vymažou všechna uživatelská data a nastavení. Po odemknutí bootloaderu bude aktivace 16KB režimu vyžadovat dva restarty. Po jeho aktivaci pak bude k přepnutí mezi 4KB a 16KB režimem stačit pouze jeden restart. Některé funkce budou v těchto režimech zakázány, takže některé aplikace nemusí fungovat. Pokud budete chtít zařízení vrátit do produkčního režimu, budete systém muset přepnout zpět do 4KB režimu a pak v něm deaktivovat odemknutí OEM / uzamknout bootloader (čímž zařízení resetujete do továrního nastavení). Odemkněte bootloader a zkuste to znovu. Pokyny, jak to provést, najdete na stránce <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Používáte 4KB stránkově agnostický režim"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Používáte 4KB verzi stránkově agnostického režimu. V tomto režimu nelze zaručit integritu softwaru a veškerá data uložená v telefonu při odemknutém bootloaderu mohou být ohrožena. Některé funkce budou v těchto režimech zakázány, takže některé aplikace nemusí fungovat. Pokud chcete znovu aktivovat produkční režim, musíte uzamknout bootloader zařízení. Další informace zobrazíte klepnutím."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Používáte 4KB verzi stránkově agnostického režimu. V tomto režimu nelze zaručit integritu softwaru a veškerá data uložená v telefonu při odemknutém bootloaderu mohou být ohrožena. Některé funkce budou v těchto režimech zakázány, takže některé aplikace nemusí fungovat. Pokud chcete znovu aktivovat produkční režim, musíte uzamknout bootloader zařízení. Tím zařízení znovu resetujete do továrního nastavení a obnovíte v něm produkční nastavení. Až se systém Android v zařízení úspěšně spustí, vypněte v sekci Pro vývojáře možnost Odemknutí OEM. Pokud se systém Android v zařízení nespustí nebo nebude stabilní, flashujte zařízení na nejnovější tovární obrazy ze stránky <a href=\"https://developers.google.com/android/images\">https://developers .google.com/android/images</a> nebo použijte nástroj <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> a vyberte Wipe Device (Vymazat zařízení), Lock Bootloader (Zamknout bootloader) a Force Flash all partitions (Flashovat všechny oddíly)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Používáte 16KB stránkově agnostický režim"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Aktuálně používáte 16KB verzi stránkově agnostického režimu. V tomto režimu nelze zaručit integritu softwaru a veškerá data uložená v telefonu při odemknutém bootloaderu mohou být ohrožena. Některé funkce budou v těchto režimech zakázány, takže některé aplikace nemusí fungovat. Pokud chcete znovu aktivovat produkční režim, musíte přepnout zpět na 4KB režim a poté uzamknout bootloader zařízení. Další informace zobrazíte klepnutím."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Aktuálně používáte 16KB verzi stránkově agnostického režimu. V tomto režimu nelze zaručit integritu softwaru a veškerá data uložená v telefonu při odemknutém bootloaderu mohou být ohrožena. Některé funkce budou v těchto režimech zakázány, takže některé aplikace nemusí fungovat. Pokud chcete znovu aktivovat produkční režim, musíte přepnout zpět na 4KB režim a poté uzamknout bootloader zařízení. Tím zařízení znovu resetujete do továrního nastavení zařízení a obnovíte v něm produkční nastavení. Až se systém Android v zařízení úspěšně spustí, vypněte v sekci Pro vývojáře možnost Odemknutí OEM. Pokud se systém Android v zařízení nespustí nebo nebude stabilní, flashujte zařízení na nejnovější tovární obrazy ze stránky <a href=\"https://developers.google.com/android/images\">https://developers .google.com/android/images</a> nebo použijte nástroj <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> a vyberte Wipe Device (Vymazat zařízení), Lock Bootloader (Zamknout bootloader) a Force Flash all partitions (Flashovat všechny oddíly)."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB stránkově agnostický režim"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Další informace"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Nástroj pro zprávy o chybách"</string>
@@ -5190,8 +5188,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Určete, co chcete vídat na obrazovce, když je tablet v doku. Při používání spořiče obrazovky může mít zařízení vyšší spotřebu energie."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Přizpůsobit"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Přizpůsobit <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"K zapnutí podpory plovoucích oken je vyžadován restart."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"K vynucení režimu plochy na sekundárních displejích je vyžadován restart."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"K aktivování podpory starších oken s volným tvarem je potřeba restart."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Ke změně podpory oken s volným tvarem je potřeba restart."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"K vynucení oken s volným tvarem na sekundárních displejích je potřeba restart."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Restartovat hned"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Restartovat později"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorový zvuk"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 227acb7..5f88fd7 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Dette er påkrævet, da identitetstjek er aktiveret"</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>
@@ -1218,10 +1219,10 @@
<string name="color_mode_option_natural" msgid="6192875655101283303">"Naturlige"</string>
<string name="color_mode_option_boosted" msgid="4698797857766774289">"Forstærkede"</string>
<string name="color_mode_option_saturated" msgid="3413853820158447300">"Mættet"</string>
- <string name="color_mode_option_automatic" msgid="2281217686509980870">"Selvjusterende"</string>
+ <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptiv"</string>
<string name="brightness" msgid="6216871641021779698">"Lysstyrke"</string>
- <string name="auto_brightness_title" msgid="4239324728760986697">"Automatisk lysstyrke"</string>
- <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Om automatisk lysstyrke"</string>
+ <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptiv lysstyrke"</string>
+ <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Om adaptiv lysstyrke"</string>
<string name="auto_brightness_description" msgid="6807117118142381193">"Skærmens lysstyrke tilpasses automatisk på baggrund af dine omgivelser og dine aktiviteter. Du kan flytte skyderen manuelt for at hjælpe automatisk lysstyrke med at lære dine præferencer."</string>
<string name="auto_brightness_summary_on" msgid="2748088951224387004">"Til"</string>
<string name="auto_brightness_summary_off" msgid="8077066192887677956">"Fra"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Valgmuligheder"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Hjælpefunktioner"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fysisk tastatur"</string>
- <string name="show_ime" msgid="4334255501724746849">"Brug skærmtastaturet"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Behold det på skærmen, mens det fysiske tastatur er aktivt"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Elastiktaster"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Tastaturet ignorerer gentagende, hurtige tryk på den samme tast inden for <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Langsomtaster"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Fortsæt alligevel"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuller"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Indstillinger for forstørrelse"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Flyt luppen med 1 finger"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Naviger rundt på skærmen ved at trække med 1 finger"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Flyt forstørrelsesområdet ved at trække med én finger."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Flyt forstørrelsesområdet ved at trække med to fingre."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Utilgængelig, når kun en del af skærmen forstørres"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tryk på en knap for at zoome"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zoom hurtigt ind på skærmen for at forstørre indhold"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Sådan zoomer du ind:</b><br/> {0,number,integer}. Brug genvejen til at starte forstørrelse<br/> {1,number,integer}. Tryk på skærmen<br/> {2,number,integer}. Træk med to fingre for at navigere rundt på skærmen<br/> {3,number,integer}. Knib med to fingre for at zoome ind eller ud<br/> {4,number,integer}. Brug genvejen til at stoppe forstørrelse<br/><br/><b>Sådan zoomer du midlertidigt ind:</b><br/> {0,number,integer}. Sørg for, at forstørrelsestypen er indstillet til fuld skærm<br/> {1,number,integer}. Brug genvejen til at starte forstørrelse<br/> {2,number,integer}. Hold fingeren nede et vilkårligt sted på skærmen<br/> {3,number,integer}. Træk fingeren for at navigere rundt på skærmen<br/> {4,number,integer}. Løft fingeren for at stoppe forstørrelse"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Sådan zoomer du ind:</b><br/> {0,number,integer}. Brug genvejen til at starte forstørrelse<br/> {1,number,integer}. Tryk på skærmen<br/> {2,number,integer}. Naviger rundt på skærmen ved at trække med 2 fingre<br/> {3,number,integer}. Knib med 2 fingre for at justere zoom<br/> {4,number,integer}. Brug genvejen til at stoppe forstørrelse<br/><br/> Du kan også midlertidigt zoome ind m.m."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Sådan zoomer du ind:</b><br/> {0,number,integer}. Brug genvejen til at starte forstørrelse<br/> {1,number,integer}. Tryk på skærmen<br/> {2,number,integer}. Naviger rundt på skærmen ved at trække med 1 finger eller 2 fingre<br/> {3,number,integer}. Knib med 2 fingre for at justere zoom<br/> {4,number,integer}. Brug genvejen til at stoppe forstørrelse<br/><br/> Du kan også midlertidigt zoome ind m.m."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Når forstørrelse er aktiveret, kan du zoome ind på skærmen.\n\n"<b>"Hvis du vil zoome"</b>", skal du åbne forstørrelse og derefter trykke et vilkårligt sted på skærmen.\n"<ul><li>"Træk med to eller flere fingre for at rulle"</li>\n<li>"Knib sammen med to eller flere fingre for at justere zoomniveauet"</li></ul>\n\n<b>"Hvis du vil zoome midlertidigt"</b>", skal du åbne forstørrelse og holde fingeren nede et vilkårligt sted på skærmen.\n"<ul><li>"Træk for at udforske forskellige dele af skærmen"</li>\n<li>"Løft fingeren for at zoome ud"</li></ul>\n\n"Du kan ikke zoome ind på tastaturet eller navigationslinjen."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Side <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> af <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Genvej til knappen til hjælpefunktioner"</string>
@@ -2738,7 +2733,7 @@
<string name="vpn_settings_insecure_single" msgid="9012504179995045195">"Ikke sikker"</string>
<string name="vpn_settings_single_insecure_multiple_total" msgid="6107225844641301139">"<xliff:g id="VPN_COUNT">%d</xliff:g> er ikke sikker"</string>
<string name="vpn_settings_multiple_insecure_multiple_total" msgid="1706236062478680488">"<xliff:g id="VPN_COUNT">%d</xliff:g> er ikke sikker"</string>
- <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Selvjusterende forbindelse"</string>
+ <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Adaptiv forbindelse"</string>
<string name="adaptive_connectivity_summary" msgid="3648731530666326885">"Forlænger batteritiden og forbedrer enhedens ydeevne ved at administrere din netværksforbindelse automatisk"</string>
<string name="adaptive_connectivity_switch_on" msgid="3653067561620745493">"Til"</string>
<string name="adaptive_connectivity_switch_off" msgid="5076172560836115265">"Fra"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Opret en tilstand"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Tilpasset"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Begræns antallet af afbrydelser"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Aktivér Forstyr ikke"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmer og medielyde kan afbryde"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Angiv en tidsplan"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Tidsplan"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> t. <xliff:g id="MINUTES">%2$d</xliff:g> min."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Aktivér automatisk"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Planlæg"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Gør telefonen lydløs på bestemte tidspunkter"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Angiv regler for Forstyr ikke"</string>
@@ -3526,9 +3522,9 @@
<string name="profile_section_header_for_advanced_privacy" msgid="8385775428904838579">"Arbejdsprofil"</string>
<string name="asst_capability_prioritizer_title" msgid="1181272430009156556">"Automatisk prioritetsniveau for notifikationer"</string>
<string name="asst_capability_prioritizer_summary" msgid="954988212366568737">"Angiv automatisk notifikationer med lavere prioritet som Diskret"</string>
- <string name="asst_capability_ranking_title" msgid="312998580233257581">"Automatisk rangering af notifikationer"</string>
+ <string name="asst_capability_ranking_title" msgid="312998580233257581">"Adaptiv rangering af notifikationer"</string>
<string name="asst_capability_ranking_summary" msgid="2293524677144599450">"Ranger automatisk notifikationer efter relevans"</string>
- <string name="asst_feedback_indicator_title" msgid="5169801869752395354">"Feedback om tilpassede notifikationer"</string>
+ <string name="asst_feedback_indicator_title" msgid="5169801869752395354">"Feedback om adaptive notifikationer"</string>
<string name="asst_feedback_indicator_summary" msgid="5862082842073307900">"Vis justeringer af notifikationer, og vis en mulighed for at give feedback til systemet"</string>
<string name="asst_importance_reset_title" msgid="6191265591976440115">"Nulstil vigtigheden af notifikationer"</string>
<string name="asst_importance_reset_summary" msgid="684794589254282667">"Nulstil brugerangivne indstillinger for vigtighed, og tillad, at notifikationsassistenten prioriterer."</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"åbn notifikationen"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Tillad udsættelse af notifikationer"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Notifikationsprik på appikon"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Notifikationspakker"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bobler"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bobler"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Lav denne samtale til en boble"</string>
@@ -3653,7 +3650,7 @@
<string name="nls_feature_read_summary" msgid="1064698238110273593">"Den kan læse dine notifikationer, herunder personlige oplysninger såsom kontakter, beskeder og billeder."</string>
<string name="nls_feature_reply_title" msgid="7925455553821362039">"Svare på beskeder"</string>
<string name="nls_feature_reply_summary" msgid="4492543411395565556">"Den kan besvare beskeder og interagere med knapper i notifikationer, herunder udsættelse eller afvisning af notifikationer og besvarelse af opkald."</string>
- <string name="nls_feature_settings_title" msgid="8208164329853194414">"Skift indstillinger"</string>
+ <string name="nls_feature_settings_title" msgid="8208164329853194414">"Skifte indstillinger"</string>
<string name="nls_feature_settings_summary" msgid="3770028705648985689">"Den kan aktivere eller deaktivere Forstyr ikke og ændre relaterede indstillinger."</string>
<string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"Hvis du slår adgang til notifikationer fra for <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>, slås adgangen til Forstyr ikke muligvis også fra."</string>
<string name="notification_listener_disable_warning_confirm" msgid="841492108402184976">"Slå fra"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alle"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tillad, at apps tilsidesætter"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps, der kan afbryde"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Vælg flere apps"</string>
@@ -4250,7 +4249,7 @@
<string name="battery_tips_card_dismiss_button" msgid="1885756985544936618">"OK"</string>
<string name="battery_tips_card_feedback_info" msgid="767117835675157298">"Er denne meddelelse nyttig?"</string>
<string name="battery_hints_warning_icon_a11y" msgid="5312542323401447620">"Advarselsikon med batteritips"</string>
- <string name="battery_tips_settings_summary_brightness" msgid="546145032616077783">"Aktivér automatisk lysstyrke for at forlænge batteritiden"</string>
+ <string name="battery_tips_settings_summary_brightness" msgid="546145032616077783">"Aktivér adaptiv lysstyrke for at forlænge batteritiden"</string>
<string name="battery_tips_settings_summary_screen_timeout" msgid="556801426050962077">"Reducer timeout for skærm for at forlænge batteritiden"</string>
<string name="battery_tips_apps_summary_always_high" msgid="6334519477067044920">"<xliff:g id="APP_LABEL">%1$s</xliff:g> brugte mere batteri"</string>
<string name="battery_tips_apps_summary_higher_than_usual" msgid="95676961671544628">"<xliff:g id="APP_LABEL">%1$s</xliff:g> brugte mere batteri end normalt"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Etui"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Indstillingspanel"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Gennemtving skrivebordstilstand"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Gennemtving eksperimentel skrivebordstilstand på sekundære skærme"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktivér vinduer i frit format"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Aktivér understøttelse af vinduer i frit format."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Aktivér vinduer i frit format på en sekundær skærm"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Aktivér kun vinduer i frit format på en sekundær skærm."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktivér app, hvis størrelse ikke kan justeres, i multivindue"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Tillader, at apps, hvis størrelse ikke kan justeres, kan være i et multivindue"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Tilsidesæt force-dark"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Denne enheds datapartition skal konverteres til ext4, før du kan bruge udviklerindstillingen med 16 kB. Softwareintegriteten kan ikke garanteres i denne tilstand, og eventuelle data, der gemmes på telefonen, mens bootloaderen er ulåst, kan være sårbare. Aktivering af indstillingen med 16 kB kræver én yderligere genstart efter dette. Når du er i denne tilstand, kan du skifte mellem tilstanden med 4 kB og tilstanden med 16 kB ved blot at genstarte en enkelt gang. Nogle funktioner deaktiveres i disse tilstande, så nogle apps fungerer muligvis ikke. Hvis du vil skifte tilbage til produktionstilstand på enheden, skal du skifte tilbage til tilstanden med 4 kB og derefter låse bootloaderen, hvilket vil gendanne enhedens fabriksindstillinger. Når enheden er startet i Android, skal du deaktivere OEM-oplåsning i Indstillinger for udviklere. Enheden ryddes, og filsystemet ændres til ext4 efter bekræftelse. Når dette er gjort, skal du vende tilbage for at aktivere 16 kB igen."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Ryd alle data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Datapartitionen kunne ikke omformateres og ryddes til ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Oplåsning af bootloader er påkrævet"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Bootloader skal være låst op på denne enhed, før du kan bruge udviklerindstillingen med 16 kB. Softwareintegriteten kan ikke garanteres i denne tilstand, og eventuelle data, der gemmes på telefonen, mens bootloaderen er ulåst, kan være sårbare. Alle brugerdata og -indstillinger ryddes, når du aktiverer tilstanden med 16 kB. Når bootloaderen er låst op, forudsætter brug af indstillingen med 16 kB to genstarter. Når du er i denne tilstand, kan du skifte mellem tilstanden med 4 kB og tilstanden med 16 kB ved blot at genstarte en enkelt gang. Nogle funktioner deaktiveres i disse tilstande, så nogle apps fungerer muligvis ikke. Hvis du vil skifte tilbage til produktionstilstand på enheden, skal du skifte tilbage til tilstanden med 4 kB og derefter låse OEM/bootloaderen, hvilket gendanner enheden fabriksindstillinger. Lås bootloaderen op, og prøv igen. Du kan se, hvordan du gør dette, på <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Brug af den sideagnostiske tilstand med 4 kB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Du er i tilstanden med 4 kB i den sideagnostiske tilstand. Softwareintegriteten kan ikke garanteres i denne tilstand, og eventuelle data, der gemmes på telefonen, mens bootloaderen er ulåst, kan være sårbare. Nogle funktioner deaktiveres i disse tilstande, så nogle apps fungerer muligvis ikke. Hvis du vil skifte tilbage til produktionstilstand, skal du låse bootloaderen på enheden. Tryk for at læse mere."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Du er i tilstanden med 4 kB i den sideagnostiske tilstand. Softwareintegriteten kan ikke garanteres i denne tilstand, og eventuelle data, der gemmes på telefonen, mens bootloaderen er ulåst, kan være sårbare. Nogle funktioner deaktiveres i disse tilstande, så nogle apps fungerer muligvis ikke. Hvis du vil skifte tilbage til produktionstilstand, skal du låse bootloaderen på enheden. Denne handling gendanner enhedens fabriksindstillinger til produktionsindstillingerne. Når enheden er startet i Android, skal du deaktivere OEM-oplåsning i Indstillinger for udviklere. Hvis enheden ikke kan starte i Android, eller hvis den er ustabil, skal du flashe enheden igen med de oprindelige systembilleder fra <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> eller bruge <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> og vælge \"Ryd enhed\", \"Lås bootloader\" og \"Gennemtving flash af alle partitioner\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Brug af den sideagnostiske tilstand med 16 kB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Du er i den sideagnostiske tilstand med 16 kB. Softwareintegriteten kan ikke garanteres i denne tilstand, og eventuelle data, der gemmes på telefonen, mens bootloaderen er ulåst, kan være sårbare. Nogle funktioner deaktiveres i disse tilstande, så nogle apps fungerer muligvis ikke. Hvis du vil vende tilbage til produktionstilstand, skal du skifte tilbage til tilstanden med 4 kB og derefter låse bootloaderen på enheden. Tryk for at læse mere."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Du er i den sideagnostiske tilstand med 16 kB. Softwareintegriteten kan ikke garanteres i denne tilstand, og eventuelle data, der gemmes på telefonen, mens bootloaderen er ulåst, kan være sårbare. Nogle funktioner deaktiveres i disse tilstande, så nogle apps fungerer muligvis ikke. Hvis du vil vende tilbage til produktionstilstand, skal du skifte tilbage til tilstanden med 4 kB og derefter låse bootloaderen på enheden. Denne handling gendanner enhedens fabriksindstillinger til produktionsindstillingerne. Når enheden er startet i Android, skal du deaktivere OEM-oplåsning via Indstillinger for udviklere. Hvis enheden ikke kan starte i Android, eller hvis den er ustabil, skal du flashe enheden igen med de oprindelige systembilleder fra <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> eller bruge <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> og vælge \"Ryd enhed\", \"Lås bootloader\" og \"Gennemtving flash af alle partitioner\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Den sideagnostiske tilstanden med 16 kB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Læs mere"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Håndtering af fejlrapport"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Vælg, hvad der skal vises på din skærm, når din tablet sidder i dockingstationen. Din enhed bruger muligvis mere batteri, når der anvendes en pauseskærm."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Tilpas"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Tilpas <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Du skal genstarte for at aktivere understøttelse af freeform."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Du skal genstarte for at gennemtvinge aktivering af computertilstand på sekundære skærme."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Du skal genstarte for at aktivere understøttelse af forældede vinduer i frit format."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Du skal genstarte for at ændre understøttelsen af vinduer i frit format"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Du skal genstarte for at gennemtvinge vinduer i frit format på sekundære skærme."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Genstart nu"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Genstart senere"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Rumlig lyd"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 242628d..3322ae6 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Dies ist erforderlich, da die Identitätsprüfung aktiviert ist"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Apps installieren"</b>\n"Du kannst in deinem Profil Apps installieren, die privat bleiben sollen"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Wichtige Hinweise"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Apps werden beendet, wenn du dein Profil sperrst"</b>\n"Wenn du dein Profil sperrst, werden die Apps darin beendet und du erhältst von ihnen keine Benachrichtigungen"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Vertrauliche Profile eignen sich nicht für Apps, die im Hintergrund laufen oder wichtige Benachrichtigungen senden müssen, wie z. B. medizinische Apps. Das liegt daran, dass Benachrichtigungen und Hintergrundaktivitäten gestoppt werden, wenn dein Profil gesperrt ist.\n\nWenn dein vertrauliches Profil gesperrt ist, werden Apps darin nicht im Berechtigungsmanager, Privatsphäre-Dashboard und anderen Einstellungen angezeigt.\n\nDein vertrauliches Profil kann nicht auf ein neues Gerät übertragen werden. Du musst ein weiteres vertrauliches Profil einrichten, wenn du es 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 dein vertrauliches Profil zugreifen."</string>
- <string name="private_space_settings_footer_text" msgid="3742468470394835356">"Vertrauliche Profile eignen sich nicht für Apps, die im Hintergrund laufen oder wichtige Benachrichtigungen senden müssen, wie z. B. medizinische Apps. Das liegt daran, dass Benachrichtigungen und Hintergrundaktivitäten gestoppt werden, wenn dein Profil gesperrt ist.\n\nWenn dein vertrauliches Profil gesperrt ist, werden Apps darin nicht im Berechtigungsmanager, Privatsphäre-Dashboard und anderen Einstellungen angezeigt.\n\nDein vertrauliches Profil kann nicht auf ein neues Gerät übertragen werden. Wenn du auf einem anderen Gerät ein vertrauliches Profil nutzen möchtest, musst du ein neues einrichten.\n\nPersonen, die dein Gerät mit einem Computer verbinden oder schädliche Apps auf deinem Gerät installieren, haben möglicherweise auch Zugriff auf dein vertrauliches Profil."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Vertrauliche Profile eignen sich nicht für Apps, die im Hintergrund laufen oder wichtige Benachrichtigungen senden müssen, wie z. B. medizinische Apps. Das liegt daran, dass Benachrichtigungen und Hintergrundaktivitäten gestoppt werden, wenn dein vertrauliches Profil gesperrt ist.\n\nWenn dein vertrauliches Profil gesperrt ist, werden Apps darin nicht im Berechtigungsmanager, Privatsphäre-Dashboard und anderen Einstellungen angezeigt.\n\nDein vertrauliches Profil kann nicht auf ein neues Gerät übertragen werden. Du musst ein weiteres vertrauliches Profil einrichten, wenn du es 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 dein vertrauliches Profil zugreifen."</string>
+ <string name="private_space_settings_footer_text" msgid="3742468470394835356">"Vertrauliche Profile eignen sich nicht für Apps, die im Hintergrund laufen oder wichtige Benachrichtigungen senden müssen, wie z. B. medizinische Apps. Das liegt daran, dass Benachrichtigungen und Hintergrundaktivitäten gestoppt werden, wenn dein vertrauliches Profil gesperrt ist.\n\nWenn dein vertrauliches Profil gesperrt ist, werden Apps darin nicht im Berechtigungsmanager, Privatsphäre-Dashboard und anderen Einstellungen angezeigt.\n\nDein vertrauliches Profil kann nicht auf ein neues Gerät übertragen werden. Wenn du auf einem anderen Gerät ein vertrauliches Profil nutzen möchtest, musst du ein neues einrichten.\n\nPersonen, die dein Gerät mit einem Computer verbinden oder schädliche Apps auf deinem Gerät installieren, haben möglicherweise auch Zugriff auf dein vertrauliches Profil."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Informationen zum vertraulichen Profil"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Das kann einen Moment dauern"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"Das vertrauliche Profil wird eingerichtet…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Optionen"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Barrierefreiheit"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Physische Tastatur"</string>
- <string name="show_ime" msgid="4334255501724746849">"Bildschirmtastatur verwenden"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Bildschirmtastatur auch dann anzeigen, wenn physische Tastatur aktiv ist"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Bounce-Tasten"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Schnell aufeinanderfolgende Betätigungen derselben Taste innerhalb von <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms werden auf der Tastatur ignoriert"</string>
<string name="slow_keys" msgid="2891452895499690837">"Anschlagverzögerung"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Trotzdem fortfahren"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Abbrechen"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Vergrößerungseinstellungen"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Lupe mit 1 Finger verschieben"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Ziehe 1 Finger auf dem Display"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Verschiebe den Vergrößerungsbereich mit einem Finger."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Verschiebe den Vergrößerungsbereich mit zwei Fingern."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nicht verfügbar, solange nur ein Teil des Bildschirms vergrößert wird"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Zum Zoomen auf eine Schaltfläche tippen"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Du kannst auf dem Display schnell heranzoomen, um Inhalte zu vergrößern"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>So zoomst du heran:</b><br/> {0,number,integer}. Starte die Vergrößerung über den Kurzbefehl<br/> {1,number,integer}. Tippe auf das Display<br/> {2,number,integer}. Ziehe mit zwei Fingern, um den angezeigten Bildschirmausschnitt zu ändern<br/> {3,number,integer}. Ziehe zwei Finger auseinander oder zusammen, um den Zoom anzupassen<br/> {4,number,integer}. Beende die Vergrößerung über den Kurzbefehl<br/><br/> <b>So zoomst du vorübergehend heran:</b><br/> {0,number,integer}. Achte darauf, dass als Art der Vergrößerung „Vollbild“ ausgewählt ist<br/> {1,number,integer}. Starte die Vergrößerung über den Kurzbefehl<br/> {2,number,integer}. Halte eine beliebige Stelle auf dem Display gedrückt<br/> {3,number,integer}. Ziehe mit dem Finger, um den angezeigten Bildschirmausschnitt zu ändern<br/> {4,number,integer}. Hebe den Finger, um die Vergrößerung zu beenden"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>So zoomst du heran:</b><br/> {0,number,integer}. Starte die Vergrößerung über die Touch-Geste für Bedienungshilfen<br/> {1,number,integer}. Tippe auf das Display<br/> {2,number,integer}. Ziehe mit 2 Fingern, um den angezeigten Bildschirmausschnitt zu verschieben<br/> {3,number,integer}. Ziehe 2 Finger auseinander oder zusammen, um den Zoom anzupassen<br/> {4,number,integer}. Stoppe die Vergrößerung über die Touch-Geste für Bedienungshilfen<br/><br/> Du kannst auch vorübergehend heranzoomen und mehr."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>So zoomst du heran:</b><br/> {0,number,integer}. Starte die Vergrößerung über die Touch-Geste für Bedienungshilfen<br/> {1,number,integer}. Tippe auf das Display<br/> {2,number,integer}. Ziehe mit 1 oder 2 Fingern, um den angezeigten Bildschirmausschnitt zu verschieben<br/> {3,number,integer}. Ziehe 2 Finger auseinander oder zusammen, um den Zoom anzupassen<br/> {4,number,integer}. Stoppe die Vergrößerung über die Touch-Geste für Bedienungshilfen<br/><br/> Du kannst auch vorübergehend heranzoomen und mehr."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Wenn die Vergrößerung aktiviert ist, kannst du Elemente auf dem Bildschirm heranzoomen.\n\n"<b>"Wenn du zoomen möchtest"</b>", starte die Vergrößerung und tippe dann auf eine beliebige Stelle auf dem Bildschirm.\n"<ul><li>"Zum Scrollen ziehe mit zwei oder mehr Fingern"</li>\n<li>"Zum Anpassen des Zooms ziehe zwei oder mehr Finger zusammen bzw. auseinander"</li></ul>\n\n<b>"Wenn du vorübergehend heranzoomen möchtest"</b>", starte die Vergrößerung und tippe dann auf eine beliebige Stelle auf dem Bildschirm und halte sie gedrückt.\n"<ul><li>"Wenn du den angezeigten Bildschirmausschnitt verschieben möchtest, ziehe den Bildschirm"</li>\n<li>"Zum Herauszoomen hebe den Finger"</li></ul>\n\n"In die Tastatur oder Navigationsleiste kann nicht hineingezoomt werden."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Seite <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> von <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Kurzbefehl: Schaltfläche „Bedienungshilfen“"</string>
@@ -2232,7 +2227,7 @@
<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="1141723096904904336">"<b>So gehts</b><br/> {0,number,integer}. Gehe zu den Einstellungen für Bedienungshilfen<br/> {1,number,integer}. Wähle eine Bedienungshilfe aus und tippe auf den Kurzbefehl<br/> {2,number,integer}. Wähle aus, ob du eine Taste oder eine Touch-Geste für den Zugriff auf die Bedienungshilfe verwenden möchtest<br/>"</string>
+ <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"<b>So gehts</b><br/> {0,number,integer}. Gehe zu den Einstellungen für Bedienungshilfen<br/> {1,number,integer}. Wähle eine Bedienungshilfe aus und tippe auf den Kurzbefehl<br/> {2,number,integer}. Wähle aus, ob du eine Schaltfläche oder eine Touch-Geste für den Zugriff auf die Bedienungshilfe verwenden möchtest<br/>"</string>
<string name="accessibility_button_description" msgid="7669538706120092399">"<b>So gehts</b><br/> {0,number,integer}. Gehe zu den Einstellungen für Bedienungshilfen<br/> {1,number,integer}. Wähle eine Bedienungshilfe aus und tippe auf den Kurzbefehl<br/> {2,number,integer}. Wähle die Taste aus, die du für den Zugriff auf die Bedienungshilfe verwenden möchtest<br/>"</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>
@@ -2446,7 +2441,7 @@
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Zulassen"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Ablehnen"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Aus"</string>
- <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"An belassen"</string>
+ <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"An 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>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Modus erstellen"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Benutzerdefiniert"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Unterbrechungen einschränken"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"„Bitte nicht stören“ aktivieren"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Wecker und Medientöne können ihn unterbrechen"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Zeitplan festlegen"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Zeitplan"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> Std. <xliff:g id="MINUTES">%2$d</xliff:g> Min."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Automatisch aktivieren"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Zeitplan"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Smartphone zu bestimmten Zeiten stummschalten"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"„Bitte nicht stören“-Regeln einrichten"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"Benachrichtigung öffnen"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Schlummerfunktion für Benachrichtigungen zulassen"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Benachrichtigungspunkt auf App-Symbol"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Benachrichtigungs-Sets"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Diese Unterhaltung als Bubble anzeigen"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alle"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Überschreiben durch Apps zulassen"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps, die unterbrechen dürfen"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Weitere Apps auswählen"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Etui"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akku"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Einstellungen"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Desktop-Modus erzwingen"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Experiementellen Desktop-Modus auf sekundären Bildschirmen erzwingen"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Freiform-Fenster zulassen"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Unterstützung für Freiform-Fenster aktivieren."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Freiform-Fenster auf sekundärem Display zulassen"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Freiform-Fenster nur auf sekundärem Display zulassen."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Mehrfenstermodus für nicht änderbare Größen aktivieren"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Erlaubt Mehrfenstermodus für Apps mit nicht änderbarer Größe"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Erzwingen des dunklen Modus außer Kraft setzen"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Bevor die 16‑KB-Entwickleroption verwendet werden kann, muss die Datenpartition des Geräts in ext4 umgewandelt werden. Beachte, dass bei entsperrtem Bootloader die Softwareintegrität nicht sichergestellt werden kann und alle auf dem Smartphone gespeicherten Daten gefährdet sind. Zum Aktivieren der 16‑KB-Option muss das Gerät danach noch einmal neu gestartet werden. Wenn du dann in diesem Modus bist, reicht für den Wechsel zwischen dem 4‑KB-Modus und dem 16‑KB-Modus ein einmaliger Neustart aus. Einige Funktionen werden in diesen Modi deaktiviert, weshalb bestimmte Anwendungen möglicherweise nicht funktionieren. Wenn du das Gerät in den Produktionsmodus zurückversetzen möchtest, musst du zurück in den 4‑KB-Modus wechseln und dann den Bootloader sperren. Dadurch wird das Gerät auf die Werkseinstellungen zurückgesetzt. Nachdem das Gerät hochgefahren und Android gestartet wurde, deaktiviere in den Entwickleroptionen die OEM-Entsperrung. Alle Daten auf dem Gerät werden gelöscht und das Dateisystem wird nach entsprechender Bestätigung in ext4 geändert. Nach Abschluss dieses Vorgangs kannst du hierher zurückkehren, um den 16‑KB-Modus zu aktivieren."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Alle Daten löschen"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Die Datenpartition konnte nicht gelöscht und mit ext4 neu formatiert werden."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Entsperrren des Bootloaders erforderlich"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Bevor auf diesem Gerät die 16‑KB-Entwickleroption verwendet werden kann, muss der Bootloader entsperrt werden. Beachte, dass bei entsperrtem Bootloader die Softwareintegrität nicht sichergestellt werden kann und alle auf dem Smartphone gespeicherten Daten gefährdet sind. Durch Aktivieren des 16‑KB-Modus werden alle Nutzerdaten und ‑einstellungen gelöscht. Nachdem der Bootloader entsperrt wurde, sind zur Aktivierung des 16‑KB-Modus zwei Neustarts erforderlich. Wenn du dann in diesem Modus bist, reicht für den Wechsel zwischen dem 4‑KB-Modus und dem 16‑KB-Modus ein einmaliger Neustart aus. Einige Funktionen werden in diesen Modi deaktiviert, weshalb bestimmte Anwendungen möglicherweise nicht funktionieren. Wenn du das Gerät in den Produktionsmodus zurückversetzen möchtest, musst du zurück in den 4‑KB-Modus wechseln und dann die OEM-/Bootloader-Sperre einrichten. Dadurch wird das Gerät auf die Werkseinstellungen zurückgesetzt. Bitte entsperre den Bootloader und versuch es noch einmal. Eine Anleitung hierzu findest du unter <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>."</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Speicherseitenunabhängigen 4‑KB-Modus verwenden"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Du befindest dich im 4‑KB-Modus des speicherseitenunabhängigen Modus. Beachte, dass bei entsperrtem Bootloader die Softwareintegrität nicht sichergestellt werden kann und alle auf dem Smartphone gespeicherten Daten gefährdet sind. Einige Funktionen werden in diesen Modi deaktiviert, weshalb bestimmte Anwendungen möglicherweise nicht funktionieren. Wenn du wieder in den Produktionsmodus wechseln möchtest, musst du den Bootloader des Geräts sperren. Wenn du mehr erfahren möchtest, tippe hier."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Du befindest dich im 4‑KB-Modus des speicherseitenunabhängigen Modus. Beachte, dass bei entsperrtem Bootloader die Softwareintegrität nicht sichergestellt werden kann und alle auf dem Smartphone gespeicherten Daten gefährdet sind. Einige Funktionen werden in diesen Modi deaktiviert, weshalb bestimmte Anwendungen möglicherweise nicht funktionieren. Wenn du wieder in den Produktionsmodus wechseln möchtest, musst du den Bootloader des Geräts sperren. Dadurch wird das Gerät wieder auf die Werkseinstellungen zurückgesetzt und die Produktionseinstellungen werden wiederhergestellt. Nachdem das Gerät hochgefahren und Android gestartet wurde, deaktiviere in den Entwickleroptionen die OEM-Entsperrung. Wenn Android auf dem Gerät nicht gestartet werden kann oder das Gerät instabil ist, flashe das aktuelle Factory Image unter <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> oder verwende <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> und wähle „Gerätedaten löschen“, „Bootloader sperren“ und „Flashen aller Partitionen erzwingen“ aus."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Hinweis zu speicherseitenunabhängigem 16‑KB-Modus"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Du befindest dich im 16‑KB-Modus des speicherseitenunabhängigen Modus. Beachte, dass bei entsperrtem Bootloader die Softwareintegrität nicht sichergestellt werden kann und alle auf dem Smartphone gespeicherten Daten gefährdet sind. Einige Funktionen werden in diesen Modi deaktiviert, weshalb bestimmte Anwendungen möglicherweise nicht funktionieren. Wenn du wieder in den Produktionsmodus wechseln möchtest, musst du zurück zum 4‑KB-Modus wechseln und dann den Bootloader des Geräts sperren. Wenn du mehr erfahren möchtest, tippe hier."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Du befindest dich im 16‑KB-Modus des speicherseitenunabhängigen Modus. Beachte, dass bei entsperrtem Bootloader die Softwareintegrität nicht sichergestellt werden kann und alle auf dem Smartphone gespeicherten Daten gefährdet sind. Einige Funktionen werden in diesen Modi deaktiviert, weshalb bestimmte Anwendungen möglicherweise nicht funktionieren. Wenn du wieder in den Produktionsmodus wechseln möchtest, musst du zurück zum 4‑KB-Modus wechseln und dann den Bootloader des Geräts sperren. Dadurch wird das Gerät wieder auf die Werkseinstellungen zurückgesetzt und die Produktionseinstellungen werden wiederhergestellt. Nachdem das Gerät hochgefahren und Android gestartet wurde, deaktiviere in den Entwickleroptionen die OEM-Entsperrung. Wenn Android auf dem Gerät nicht gestartet werden kann oder das Gerät instabil ist, flashe das aktuelle Factory Image unter <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> oder verwende <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> und wähle „Gerätedaten löschen“, „Bootloader sperren“ und „Flashen aller Partitionen erzwingen“ aus."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Speicherseitenunabhängiger 16‑KB-Modus"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Weitere Informationen"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Fehlerbericht-Handler"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Hier kannst du festlegen, was auf dem Display angezeigt werden soll, wenn das Tablet angedockt ist. Das Gerät verbraucht möglicherweise mehr Strom, wenn ein Bildschirmschoner verwendet wird."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Anpassen"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> anpassen"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Damit die Freiform-Unterstützung aktiviert wird, musst du das Gerät neu starten."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Damit der Desktop-Modus auf sekundären Bildschirmen erzwungen wird, musst du das Gerät neu starten."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Ein Neustart ist erforderlich, um die Unterstützung für Legacy-Freiform-Fenster zu aktivieren."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Ein Neustart ist erforderlich, um die Unterstützung für Freiform-Fenster zu ändern."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Ein Neustart ist erforderlich, um Freiform-Fenster auf sekundären Displays zu erzwingen."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Jetzt neu starten"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Später neu starten"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial Audio"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 4c14084..6c1cfa9 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Προστέθηκε το πρόσωπο και το <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Προστέθηκαν πρόσωπο, δακτυλικό αποτύπωμα και το <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Προστέθηκαν πρόσωπο, δακτυλικά αποτυπώματα και το <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Αυτό είναι απαραίτητο επειδή ο Έλεγχος ταυτότητας είναι ενεργοποιημένος"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Επιλογές"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Προσβασιμότητα"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Φυσικό πληκτρολόγιο"</string>
- <string name="show_ime" msgid="4334255501724746849">"Χρήση πληκτρολογίου οθόνης"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Να παραμένει στην οθόνη όταν είναι ενεργό το φυσικό πληκτρολόγιο"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Ελαστικά πλήκτρα"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Το πληκτρολόγιο αγνοεί τα γρήγορα, επαναλαμβανόμενα πατήματα του ίδιου πλήκτρου εντός <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Αργά πλήκτρα"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Συνέχεια ούτως ή άλλως"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Ακύρωση"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ρυθμίσεις μεγέθυνσης"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Μετακινήστε τη Μεγέθυνση με το δάχτυλό σας"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Σύρετε το δάχτυλό σας για μετακίνηση στην οθόνη"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Μετακινήστε την περιοχή μεγιστοπ. σύροντας με ένα δάχτυλο."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Μετακινήστε την περιοχή μεγιστοπ. σύροντας με δύο δάχτυλα."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Μη διαθέσιμο όταν μεγιστοποιείται μόνο ένα τμήμα της οθόνης"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Πατήστε ένα κουμπί για εστίαση"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Μεγεθύνετε γρήγορα την οθόνη προκειμένου το περιεχόμενο να εμφανίζεται μεγαλύτερο"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Για μεγέθυνση:</b><br/> {0,number,integer}. Χρησιμοποιήστε τη συντόμευση για να ξεκινήσετε τη μεγιστοποίηση<br/> {1,number,integer}. Πατήστε την οθόνη<br/> {2,number,integer}. Σύρετε 2 δάχτυλα για να μετακινηθείτε στην οθόνη<br/> {3,number,integer}. Πλησιάστε δύο δάχτυλα μεταξύ τους για προσαρμογή της εστίασης<br/> {4,number,integer}. Χρησιμοποιήστε τη συντόμευση για να διακόψετε τη μεγιστοποίηση<br/><br/> <b>Για προσωρινή μεγέθυνση:</b><br/> {0,number,integer}. Βεβαιωθείτε ότι ο τύπος μεγέθυνσης έχει οριστεί σε πλήρη οθόνη<br/> {1,number,integer}. Χρησιμοποιήστε τη συντόμευση για να ξεκινήσετε τη μεγιστοποίηση<br/> {2,number,integer}. Αγγίξτε παρατεταμένα οπουδήποτε στην οθόνη<br/> {3,number,integer}. Σύρετε το δάχτυλό σας για να μετακινηθείτε στην οθόνη<br/> {4,number,integer}. Σηκώστε το δάχτυλό σας για διακοπή της μεγιστοποίησης"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Για μεγέθυνση:</b><br/> {0,number,integer}. Χρησιμοποιήστε τη συντόμευση για να ξεκινήσετε τη μεγιστοποίηση<br/> {1,number,integer}. Πατήστε την οθόνη<br/> {2,number,integer}. Σύρετε 2 δάχτυλα για να μετακινηθείτε στην οθόνη<br/> {3,number,integer}. Πλησιάστε 2 δάχτυλα μεταξύ τους για προσαρμογή της εστίασης<br/> {4,number,integer}. Χρησιμοποιήστε τη συντόμευση για να σταματήσετε τη μεγιστοποίηση<br/><br/> Μπορείτε επίσης να κάνετε προσωρινά μεγέθυνση και πολλά άλλα."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Για μεγέθυνση:</b><br/> {0,number,integer}. Χρησιμοποιήστε τη συντόμευση για να ξεκινήσετε τη μεγιστοποίηση<br/> {1,number,integer}. Πατήστε την οθόνη<br/> {2,number,integer}. Σύρετε 1 ή 2 δάχτυλα για να μετακινηθείτε στην οθόνη<br/> {3,number,integer}. Πλησιάστε 2 δάχτυλα μεταξύ τους για προσαρμογή της εστίασης<br/> {4,number,integer}. Χρησιμοποιήστε τη συντόμευση για να σταματήσετε τη μεγιστοποίηση<br/><br/> Μπορείτε επίσης να κάνετε προσωρινά μεγέθυνση και πολλά άλλα."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Όταν η μεγέθυνση είναι ενεργοποιημένη, μπορείτε να μεγεθύνετε την οθόνη σας.\n\n"<b>"Για εστίαση "</b>", ανοίξτε τη μεγέθυνση και, στη συνέχεια, πατήστε οπουδήποτε στην οθόνη σας.\n"<ul><li>"Σύρετε 2 ή περισσότερα δάχτυλα για κύλιση"</li>\n<li>"Πλησιάστε 2 ή περισσότερα δάχτυλα για να προσαρμόσετε την εστίαση"</li></ul>\n\n<b>"Για προσωρινή εστίαση"</b>", ανοίξτε τη μεγέθυνση και, στη συνέχεια, αγγίξτε παρατεταμένα οπουδήποτε στην οθόνη.\n"<ul><li>"Σύρετε για να μετακινηθείτε στην οθόνη"</li>\n<li>"Ανασηκώστε το δάχτυλο για σμίκρυνση"</li></ul>\n\n"Δεν μπορείτε να κάνετε μεγέθυνση στο πληκτρολόγιο ή τη γραμμή πλοήγησης."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Σελίδα <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> από <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Συντόμευση κουμπιού προσβασιμότητας"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Δημιουργία λειτουργίας"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Προσαρμοσμένο"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Περιορισμός διακοπών"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Ενεργοποίηση λειτουργίας \"Μην ενοχλείτε\""</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Οι συναγερμοί και οι ήχοι των μέσων μπορούν να διακόπτουν."</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Ορίστε ένα πρόγραμμα"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Πρόγραμμα"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ώ. <xliff:g id="MINUTES">%2$d</xliff:g> λ."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Αυτόματη ενεργοποίηση"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Πρόγραμμα"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Σίγαση τηλεφώνου ορισμένες ώρες"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Ρύθμιση κανόνων λειτουργίας \"Μην ενοχλείτε\""</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"άνοιγμα ειδοποίησης"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Να επιτρέπεται η αναβολή των ειδοποιήσεων"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Κουκκίδα ειδοποίησης στο εικονίδιο εφαρμογής"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Πακέτα ειδοποιήσεων"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Συννεφάκια"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Συννεφάκια"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Εμφάνιση αυτής της συνομιλίας σε συννεφάκι"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Όλες"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Να επιτρέπεται στις εφαρμογές η παράκαμψη"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Εφαρμογές που μπορούν να διακόπτουν"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Επιλέξτε περισσότερες εφαρμογές"</string>
@@ -4347,7 +4346,7 @@
<string name="system_navigation_title" msgid="4890381153527184636">"Λειτουργία πλοήγησης"</string>
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Πλοήγηση με δύο κουμπιά"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Για εναλλαγή εφαρμογών, σύρετε προς τα επάνω στο κουμπί αρχικής οθόνης. Για να δείτε όλες τις εφαρμογές, σύρετε ξανά προς τα επάνω. Για επιστροφή, πατήστε το κουμπί επιστροφής."</string>
- <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Λειτουργίες ασφαλείας και έκτακτης ανάγκης"</string>
+ <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Λειτουργίες προσωπικής ασφαλείας και έκτακτης ανάγκης"</string>
<string name="emergency_dashboard_summary" msgid="401033951074039302">"Έκτακτη ανάγκη SOS, ιατρικές πληροφορίες, ειδοποιήσεις"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Πλοήγηση με κινήσεις"</string>
<string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"Για μετάβαση στην αρχική οθόνη, σύρετε προς τα επάνω από το κάτω μέρος της οθόνης. Για εναλλαγή εφαρμογών, σύρετε προς τα επάνω από το κάτω μέρος, περιμένετε και, έπειτα, απομακρύνετε το δάχτυλο. Για επιστροφή, σύρετε είτε από το αριστερό είτε από το δεξί άκρο."</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Θήκη"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Μπαταρία"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Πλαίσιο ρυθμίσεων"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Αναγκαστική λειτουργία επιτραπέζιου υπολογιστή"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Αναγκαστική πειραματική λειτουργία επιτραπέζιου υπολογιστή σε δευτερεύουσες οθόνες"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Ενεργοποίηση παραθύρων ελεύθερης μορφής"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Ενεργοποίηση υποστήριξης για παράθυρα ελεύθερης μορφής."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Ενεργ. προσαρμ. παρ. ελεύθ. μορφής σε δευτ. οθόνη"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Ενεργοποίηση παραθύρων ελεύθερης μορφής μόνο στη δευτερεύουσα οθόνη."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ενεργ. εφαρμ. χωρίς δυνατ. αλλαγής μεγέθ. σε πολλαπλά παραθ."</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Επιτρέπει εφαρμογές χωρίς δυνατότητα αλλαγής μεγέθους σε λειτουργία πολλαπλών παραθύρων"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Παράκαμψη αναγκ. χρήσης σκούρου θέματος"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Το διαμέρισμα δεδομένων αυτής της συσκευής πρέπει να μετατραπεί σε ext4 πριν από τη χρήση της επιλογής 16 KB για προγραμματιστές. Δεν είναι δυνατή η εγγύηση της ακεραιότητας του λογισμικού σε αυτή τη λειτουργία. Επίσης, τυχόν δεδομένα τα οποία αποθηκεύονται στο τηλέφωνο ενώ είναι ξεκλειδωμένο το πρόγραμμα φόρτωσης εκκίνησης ενδέχεται να κινδυνεύουν. Η ενεργοποίηση της επιλογής 16 KB απαιτεί μία ακόμα επανεκκίνηση μετά από αυτό. Όταν βρίσκεστε σε αυτή τη λειτουργία, μπορείτε να κάνετε εναλλαγή μεταξύ των λειτουργιών 4 KB και 16 KB με μία μόνο επανεκκίνηση. Ορισμένες δυνατότητες θα απενεργοποιηθούν σε αυτές τις λειτουργίες, επομένως ορισμένες εφαρμογές ενδέχεται να μην λειτουργούν. Για να επιστρέψετε τη συσκευή στη λειτουργία παραγωγής, θα πρέπει να μεταβείτε ξανά στη λειτουργία 4 KB και κατόπιν να κλειδώσετε το πρόγραμμα φόρτωσης εκκίνησης, γεγονός που οδηγεί στην επαναφορά των εργοστασιακών ρυθμίσεων της συσκευής. Μετά την επιτυχημένη εκκίνηση της συσκευής στο Android, απενεργοποιήστε το OEM ξεκλείδωμα στις Επιλογές για προγραμματιστές. Θα γίνει εκκαθάριση της συσκευής και το σύστημα αρχείων θα αλλάξει σε ext4 κατόπιν επιβεβαίωσης. Αφού ολοκληρωθεί αυτή η διαδικασία, επιστρέψτε για να ενεργοποιήσετε ξανά τη λειτουργία 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Διαγραφή όλων των δεδομένων"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Απέτυχε η αλλαγή μορφής και η εκκαθάριση του διαμερίσματος δεδομένων σε ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Απαιτείται ξεκλείδωμα του προγράμματος φόρτωσης εκκίνησης"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Για να είναι δυνατή η χρήση της επιλογής 16 KB για προγραμματιστές, πρέπει να είναι ξεκλειδωμένο το πρόγραμμα φόρτωσης εκκίνησης σε αυτή τη συσκευή. Δεν είναι δυνατή η εγγύηση της ακεραιότητας του λογισμικού σε αυτή τη λειτουργία. Επίσης, τυχόν δεδομένα τα οποία αποθηκεύονται στο τηλέφωνο ενώ είναι ξεκλειδωμένο το πρόγραμμα φόρτωσης εκκίνησης ενδέχεται να κινδυνεύουν. Όλα τα δεδομένα και οι ρυθμίσεις χρήστη θα εκκαθαριστούν κατά την ενεργοποίηση της λειτουργίας 16 KB. Μετά το ξεκλείδωμα του προγράμματος φόρτωσης εκκίνησης, η ενεργοποίηση της επιλογής 16 KB απαιτεί δύο επανεκκινήσεις. Όταν βρίσκεστε σε αυτή τη λειτουργία, μπορείτε να κάνετε εναλλαγή μεταξύ των λειτουργιών 4 KB και 16 KB με μία μόνο επανεκκίνηση. Ορισμένες δυνατότητες θα απενεργοποιηθούν σε αυτές τις λειτουργίες, επομένως ορισμένες εφαρμογές ενδέχεται να μην λειτουργούν. Για να επιστρέψετε τη συσκευή στη λειτουργία παραγωγής, θα πρέπει να μεταβείτε ξανά στη λειτουργία 4 KB και κατόπιν να εφαρμόσετε κλείδωμα OEM/προγράμματος φόρτωσης εκκίνησης (το οποίο οδηγεί στην επαναφορά των εργοστασιακών ρυθμίσεων) στη συσκευή. Ξεκλειδώστε το πρόγραμμα φόρτωσης εκκίνησης και δοκιμάστε ξανά. Μπορείτε να δείτε οδηγίες για την εκτέλεση αυτής της διαδικασίας στη διεύθυνση <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Χρήση της λειτουργίας 4 KB που δεν εξαρτάται από το μέγεθος σελίδας"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Βρίσκεστε στη λειτουργία 4 KB της λειτουργίας που δεν εξαρτάται από το μέγεθος σελίδας. Δεν είναι δυνατή η εγγύηση της ακεραιότητας του λογισμικού σε αυτή τη λειτουργία. Επίσης, τυχόν δεδομένα τα οποία αποθηκεύονται στο τηλέφωνο ενώ είναι ξεκλειδωμένο το πρόγραμμα φόρτωσης εκκίνησης ενδέχεται να κινδυνεύουν. Ορισμένες δυνατότητες θα απενεργοποιηθούν σε αυτές τις λειτουργίες, επομένως ορισμένες εφαρμογές ενδέχεται να μην λειτουργούν. Για να εισέλθετε ξανά στη λειτουργία παραγωγής, πρέπει να κλειδώσετε το πρόγραμμα φόρτωσης εκκίνησης της συσκευής. Πατήστε για να διαβάσετε περισσότερα."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Βρίσκεστε στη λειτουργία 4 KB της λειτουργίας που δεν εξαρτάται από το μέγεθος σελίδας. Δεν είναι δυνατή η εγγύηση της ακεραιότητας του λογισμικού σε αυτή τη λειτουργία. Επίσης, τυχόν δεδομένα τα οποία αποθηκεύονται στο τηλέφωνο ενώ είναι ξεκλειδωμένο το πρόγραμμα φόρτωσης εκκίνησης ενδέχεται να κινδυνεύουν. Ορισμένες δυνατότητες θα απενεργοποιηθούν σε αυτές τις λειτουργίες, επομένως ορισμένες εφαρμογές ενδέχεται να μην λειτουργούν. Για να εισέλθετε ξανά στη λειτουργία παραγωγής, πρέπει να κλειδώσετε το πρόγραμμα φόρτωσης εκκίνησης της συσκευής. Αυτή η ενέργεια θα είχε ως αποτέλεσμα την επαναφορά των εργοστασιακών ρυθμίσεων ξανά, καθώς και την επαναφορά της συσκευής στις ρυθμίσεις παραγωγής. Μετά την επιτυχημένη εκκίνηση της συσκευής στο Android, απενεργοποιήστε το OEM ξεκλείδωμα στις Επιλογές για προγραμματιστές. Αν η συσκευή δεν ολοκληρώσει την εκκίνηση στο Android με επιτυχία ή είναι ασταθής, εγκαταστήστε εκ νέου τις πιο πρόσφατες εργοστασιακές εικόνες στη συσκευή από τη διεύθυνση <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ή χρησιμοποιήστε <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> και επιλέξτε Εκκαθάριση συσκευής, Κλείδωμα προγράμματος φόρτωσης εκκίνησης και Αναγκαστικό flash όλων των διαμερισμάτων."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Χρήση της λειτουργίας 16 KB που δεν εξαρτάται από το μέγεθος σελίδας"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Βρίσκεστε στη λειτουργία 16 KB της λειτουργίας που δεν εξαρτάται από το μέγεθος σελίδας. Δεν είναι δυνατή η εγγύηση της ακεραιότητας του λογισμικού σε αυτή τη λειτουργία. Επίσης, τυχόν δεδομένα τα οποία αποθηκεύονται στο τηλέφωνο ενώ είναι ξεκλειδωμένο το πρόγραμμα φόρτωσης εκκίνησης ενδέχεται να κινδυνεύουν. Ορισμένες δυνατότητες θα απενεργοποιηθούν σε αυτές τις λειτουργίες, επομένως ορισμένες εφαρμογές ενδέχεται να μην λειτουργούν. Για να εισέλθετε ξανά στη λειτουργία παραγωγής, πρέπει να μεταβείτε ξανά στη λειτουργία 4 KB και κατόπιν να κλειδώσετε το πρόγραμμα φόρτωσης εκκίνησης της συσκευής. Πατήστε για να διαβάσετε περισσότερα."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Βρίσκεστε στη λειτουργία 16 KB της λειτουργίας που δεν εξαρτάται από το μέγεθος σελίδας. Δεν είναι δυνατή η εγγύηση της ακεραιότητας του λογισμικού σε αυτή τη λειτουργία. Επίσης, τυχόν δεδομένα τα οποία αποθηκεύονται στο τηλέφωνο ενώ είναι ξεκλειδωμένο το πρόγραμμα φόρτωσης εκκίνησης ενδέχεται να κινδυνεύουν. Ορισμένες δυνατότητες θα απενεργοποιηθούν σε αυτές τις λειτουργίες, επομένως ορισμένες εφαρμογές ενδέχεται να μην λειτουργούν. Για να εισέλθετε ξανά στη λειτουργία παραγωγής, πρέπει να μεταβείτε ξανά στη λειτουργία 4 KB και κατόπιν να κλειδώσετε το πρόγραμμα φόρτωσης εκκίνησης της συσκευής. Αυτή η ενέργεια θα είχε ως αποτέλεσμα την εκ νέου επαναφορά των εργοστασιακών ρυθμίσεων, καθώς και την επαναφορά της συσκευής στις ρυθμίσεις παραγωγής. Μετά την επιτυχημένη εκκίνηση της συσκευής στο Android, απενεργοποιήστε το OEM ξεκλείδωμα στις Επιλογές για προγραμματιστές. Αν η συσκευή δεν ολοκληρώσει την εκκίνηση στο Android με επιτυχία ή είναι ασταθής, εγκαταστήστε εκ νέου τις πιο πρόσφατες εργοστασιακές εικόνες στη συσκευή από τη διεύθυνση <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ή χρησιμοποιήστε το <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> και επιλέξτε Εκκαθάριση συσκευής, Κλείδωμα προγράμματος φόρτωσης εκκίνησης και Αναγκαστικό flash όλων των διαμερισμάτων."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Λειτουργία 16 KB που δεν εξαρτάται από το μέγεθος σελίδας"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Διαβάστε περισσότερα"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Χειρισμός Αναφοράς σφάλματος"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Επιλέξτε τι θα εμφανίζεται στην οθόνη σας όταν το tablet είναι στη βάση σύνδεσης. Η συσκευή σας μπορεί να καταναλώνει περισσότερη ενέργεια όταν χρησιμοποιείται μια προφύλαξη οθόνης."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Προσαρμογή"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Προσαρμογή <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Απαιτείται επανεκκίνηση για την ενεργοποίηση της υποστήριξης ελεύθερης μορφής."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Απαιτείται επανεκκίνηση για την επιβολή χρήσης της λειτουργίας υπολογιστή σε δευτερεύουσες οθόνες."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Απαιτείται επανεκκίνηση για την ενεργοποίηση της υποστήριξης προσαρμογής σε παράθυρο ελεύθερης μορφής παλαιού τύπου."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Απαιτείται επανεκκίνηση για την αλλαγή της υποστήριξης προσαρμογής σε παράθυρο ελεύθερης μορφής."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Απαιτείται επανεκκίνηση για την επιβολή προσαρμογής σε παράθυρο ελεύθερης μορφής σε δευτερεύουσες οθόνες."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Επανεκκίνηση τώρα"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Επανεκκίνηση αργότερα"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Χωρικός ήχος"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 6ea608b..c7915ec 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"This is needed since Identity Check is on"</string>
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote authenticator unlock"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
- <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"The keyboard ignores quickly repeated presses of the same key within <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Move magnifier with 1 finger"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Drag 1 finger to move around the screen"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Move the magnification area by dragging one finger."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Move the magnification area by dragging two fingers."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Unavailable while only magnifying part of the screen"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tap a button to zoom"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Quickly zoom in on the screen to make content larger"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>To zoom in:</b><br/> {0,number,integer}. Use shortcut to start magnification<br/> {1,number,integer}. Tap the screen<br/> {2,number,integer}. Drag two fingers to move around screen<br/> {3,number,integer}. Pinch with two fingers to adjust zoom<br/> {4,number,integer}. Use shortcut to stop magnification<br/><br/> <b>To zoom in temporarily:</b><br/> {0,number,integer}. Make sure that your magnification type is set to full screen<br/> {1,number,integer}. Use shortcut to start magnification<br/> {2,number,integer}. Touch and hold anywhere on the screen<br/> {3,number,integer}. Drag finger to move around screen<br/> {4,number,integer}. Lift finger to stop magnification"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>To zoom in:</b><br/> {0,number,integer}. Use shortcut to start magnification<br/> {1,number,integer}. Tap the screen<br/> {2,number,integer}. Drag 2 fingers to move around the screen<br/> {3,number,integer}. Pinch with 2 fingers to adjust zoom<br/> {4,number,integer}. Use shortcut to stop magnification<br/><br/> You can also zoom in temporarily and more."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>To zoom in:</b><br/> {0,number,integer}. Use shortcut to start magnification<br/> {1,number,integer}. Tap the screen<br/> {2,number,integer}. Drag 1 or 2 fingers to move around the screen<br/> {3,number,integer}. Pinch with 2 fingers to adjust zoom<br/> {4,number,integer}. Use shortcut to stop magnification<br/><br/> You can also zoom in temporarily and more."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"When magnification is turned on, you can zoom in on your screen.\n\n"<b>"To zoom"</b>", start magnification, then tap anywhere on the screen.\n"<ul><li>"Drag 2 or more fingers to scroll"</li>\n<li>"Pinch 2 or more fingers to adjust zoom"</li></ul>\n\n<b>"To zoom temporarily"</b>", start magnification, then touch and hold anywhere on the screen.\n"<ul><li>"Drag to move around the screen"</li>\n<li>"Lift finger to zoom out"</li></ul>\n\n"You can’t zoom in on the keyboard or navigation bar."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> of <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Accessibility button shortcut"</string>
@@ -3222,7 +3217,7 @@
<string name="keywords_time_format" msgid="5384803098766166820">"Use 24-hour format"</string>
<string name="keywords_app_default" msgid="8977706259156428770">"Open with"</string>
<string name="keywords_applications_settings" msgid="999926810912037792">"Applications"</string>
- <string name="keywords_time_zone" msgid="6402919157244589055">"time zone"</string>
+ <string name="keywords_time_zone" msgid="6402919157244589055">"timezone"</string>
<string name="keywords_draw_overlay" msgid="3170036145197260392">"Chat head, system, alert, window, dialogue, display, on top other apps, draw"</string>
<string name="keywords_flashlight" msgid="2133079265697578183">"Flashlight, Light, Torch"</string>
<string name="keywords_change_wifi_state" msgid="7573039644328488165">"wifi, wi-fi, toggle, control"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Create a mode"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limit interruptions"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Turn on Do Not Disturb"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarms and media sounds can interrupt"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Set a schedule"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schedule"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>hr, <xliff:g id="MINUTES">%2$d</xliff:g>min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Turn on automatically"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schedule"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silence phone at certain times"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Set do not disturb rules"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"open notification"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Allow notification snoozing"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Notification dot on app icon"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Notification bundles"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bubble this conversation"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"All"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode on secondary displays"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Enable freeform windows"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Enable support for freeform windows."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Enable freeform windowing on second display"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Enable freeform windows only on secondary display."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Enable non-resizable in Multi-window"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Allows non-resizable apps to be in Multi-window"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Override force-dark"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"This device\'s data partition needs to be converted to ext4 before using the 16 KB developer option. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Activating the 16 KB option will require one more reboot after this. Once you are in this mode, you can switch back and forth between 4 KB and 16 KB mode with a single reboot. Some features will be disabled in these modes, so some applications may not work. To return the device to Production mode, you would need to switch back to 4 KB mode and then lock the bootloader, which factory resets the device. Once the device successfully boots into Android, disable OEM unlocking in Developer options. The device will be wiped and the filesystem will be changed to ext4 after confirmation. Once this completes, please come back to enable 16 KB again."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Erase all data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Failed to reformat and wipe the data partition to ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Bootloader unlock required"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"This device needs to have the bootloader unlocked before using the 16 KB developer option. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. All user data and settings will be wiped when activating 16 KB mode. Once the bootloader is unlocked, activating the 16 KB option will require two reboots. Once you are in this mode, you can switch back and forth between 4 KB and 16 KB mode with a single reboot. Some features will be disabled in these modes, so some applications may not work. To return the device to Production mode, you would need to switch back to 4 KB mode and then OEM/bootloader lock (which factory resets) the device. Please unlock the bootloader and try again. You can see instructions for how to do this at <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Using 4 KB page-agnostic mode"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"You are in the 4 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the Production mode, you must lock the bootloader of the device. Tap to read more."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"You are in the 4 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the Production mode, you must lock the bootloader of the device. This would factory reset the device again and restore it to production settings. Once the device successfully boots into Android, disable OEM unlocking in Developer options. If the device fails to boot into Android or is unstable, re-flash the device with the latest factory images from <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> and select \'Wipe device\', \'Lock bootloader\' and \'Force flash all partitions\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Using 16 KB page-agnostic mode"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"You are in the 16 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must switch back to 4 KB mode and then lock the bootloader of the device. Tap to read more."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"You are in the 16 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must switch back to 4 KB mode and then lock the bootloader of the device. This would factory reset the device again and restore it to production settings. Once the device successfully boots into Android, disable OEM unlocking in Developer options. If the device fails to boot into Android or is unstable, re-flash the device with the latest factory images from <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> and select \'Wipe device\', \'Lock bootloader\' and \'Force flash all partitions\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 KB page-agnostic mode"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Read more"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Bug report handler"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Choose what you’ll see on your screen when your tablet is docked. Your device may use more energy when a screen saver is used."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Customise"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Customise <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A reboot is required to enable freeform support."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"A reboot is required to enable legacy freeform windowing support."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"A reboot is required to change freeform windowing support."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"A reboot is required to force freeform windowing on secondary displays."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial audio"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 4e5f1d4..16ee68a 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -410,6 +410,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"This is needed since Identity Check is on"</string>
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator Unlock"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
@@ -1911,8 +1912,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
- <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"The keyboard ignores quickly repeated presses of the same key within <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
@@ -3353,6 +3352,8 @@
<string name="zen_mode_active_text" msgid="5002406772481439437">"ON"</string>
<string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Not set"</string>
<string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Disabled"</string>
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Create a mode"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limit interruptions"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Turn on Do Not Disturb"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarms and media sounds can interrupt"</string>
@@ -3371,8 +3372,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Set a schedule"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schedule"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> hr, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Turn on automatically"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schedule"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silence phone at certain times"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Set Do Not Disturb rules"</string>
@@ -3516,6 +3516,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"open notification"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Allow notification snoozing"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Notification dot on app icon"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Notification bundles"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bubble this conversation"</string>
@@ -3805,6 +3806,8 @@
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"All"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{No apps can interrupt}=1{{app_1} can interrupt}=2{{app_1} and {app_2} can interrupt}=3{{app_1}, {app_2}, and {app_3} can interrupt}other{{app_1}, {app_2}, and # more can interrupt}}"</string>
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -4829,8 +4832,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode on secondary displays"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Enable freeform windows"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Enable support for freeform windows."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Enable freeform windowing on second display"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Enable freeform windows only on secondary display."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Enable non-resizable in multi window"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Allows non-resizable apps to be in multi window"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Override force-dark"</string>
@@ -4898,17 +4903,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"This device’s data partition needs to be converted to ext4 before using the 16KB developer option. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Activating the 16KB option will require one more reboot after this. Once you are in this mode, you can switch back and forth between 4KB and 16KB mode with a single reboot. Some features will be disabled in these modes, so some applications may not work. To return the device to production mode, you would need to switch back to 4KB mode and then lock the bootloader, which factory resets the device. After the device successfully boots into Android, disable OEM unlocking in Developer options. The device will be wiped and the filesystem will be changed to ext4 after confirmation. After this completes, please come back to enable 16KB again."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Erase all data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Failed to reformat and wipe the data partition to ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Bootloader Unlock Required"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"This device needs to have the bootloader unlocked before using the 16KB developer option. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. All user data and settings will be wiped when activating 16KB mode. Once the bootloader is unlocked, activating the 16KB option will require two reboots. Once you are in this mode, you can switch back and forth between 4KB and 16KB mode with a single reboot. Some features will be disabled in these modes, so some applications may not work. To return the device to production mode, you would need to switch back to 4KB mode and then OEM/bootloader lock (which factory resets) the device. Please unlock the bootloader and try again. You can see instructions for how to do this at <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Using 4KB page-agnostic mode"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"You are in the 4KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must lock the bootloader of the device. Tap to read more."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"You are in the 4KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must lock the bootloader of the device. This would factory reset the device again and restore it to production settings. After the device successfully boots into Android, disable OEM unlocking in Developer options. If the device fails to boot into Android or is unstable, re-flash the device with the latest factory images from <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> and select \'Wipe Device\', \'Lock Bootloader\' and \'Force Flash all partitions\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Using 16KB page-agnostic mode"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"You are in the 16KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must, switch back to 4KB mode and then lock the bootloader of the device. Tap to read more."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"You are in the 16KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must, switch back to 4KB mode and then lock the bootloader of the device. This would factory reset the device again and restore it to production settings. After the device successfully boots into Android, disable OEM unlocking in Developer options. If the device fails to boot into Android or is unstable, re-flash the device with the latest factory images from <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> and select \'Wipe Device\', \'Lock Bootloader\' and \'Force Flash all partitions\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB Page-agnostic Mode"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Read more"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Bug report handler"</string>
@@ -5154,8 +5156,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Choose what you’ll see on your screen when your tablet is docked. Your device may use more energy when a screen saver is used."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Customize"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Customize <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A reboot is required to enable freeform support."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"A reboot is required to enable legacy freeform windowing support."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"A reboot is required to change freeform windowing support."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"A reboot is required to force freeform windowing on secondary displays."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial Audio"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 7e320a4..ebf5257 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"This is needed since Identity Check is on"</string>
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote authenticator unlock"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
- <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"The keyboard ignores quickly repeated presses of the same key within <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Move magnifier with 1 finger"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Drag 1 finger to move around the screen"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Move the magnification area by dragging one finger."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Move the magnification area by dragging two fingers."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Unavailable while only magnifying part of the screen"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tap a button to zoom"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Quickly zoom in on the screen to make content larger"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>To zoom in:</b><br/> {0,number,integer}. Use shortcut to start magnification<br/> {1,number,integer}. Tap the screen<br/> {2,number,integer}. Drag two fingers to move around screen<br/> {3,number,integer}. Pinch with two fingers to adjust zoom<br/> {4,number,integer}. Use shortcut to stop magnification<br/><br/> <b>To zoom in temporarily:</b><br/> {0,number,integer}. Make sure that your magnification type is set to full screen<br/> {1,number,integer}. Use shortcut to start magnification<br/> {2,number,integer}. Touch and hold anywhere on the screen<br/> {3,number,integer}. Drag finger to move around screen<br/> {4,number,integer}. Lift finger to stop magnification"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>To zoom in:</b><br/> {0,number,integer}. Use shortcut to start magnification<br/> {1,number,integer}. Tap the screen<br/> {2,number,integer}. Drag 2 fingers to move around the screen<br/> {3,number,integer}. Pinch with 2 fingers to adjust zoom<br/> {4,number,integer}. Use shortcut to stop magnification<br/><br/> You can also zoom in temporarily and more."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>To zoom in:</b><br/> {0,number,integer}. Use shortcut to start magnification<br/> {1,number,integer}. Tap the screen<br/> {2,number,integer}. Drag 1 or 2 fingers to move around the screen<br/> {3,number,integer}. Pinch with 2 fingers to adjust zoom<br/> {4,number,integer}. Use shortcut to stop magnification<br/><br/> You can also zoom in temporarily and more."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"When magnification is turned on, you can zoom in on your screen.\n\n"<b>"To zoom"</b>", start magnification, then tap anywhere on the screen.\n"<ul><li>"Drag 2 or more fingers to scroll"</li>\n<li>"Pinch 2 or more fingers to adjust zoom"</li></ul>\n\n<b>"To zoom temporarily"</b>", start magnification, then touch and hold anywhere on the screen.\n"<ul><li>"Drag to move around the screen"</li>\n<li>"Lift finger to zoom out"</li></ul>\n\n"You can’t zoom in on the keyboard or navigation bar."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> of <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Accessibility button shortcut"</string>
@@ -3222,7 +3217,7 @@
<string name="keywords_time_format" msgid="5384803098766166820">"Use 24-hour format"</string>
<string name="keywords_app_default" msgid="8977706259156428770">"Open with"</string>
<string name="keywords_applications_settings" msgid="999926810912037792">"Applications"</string>
- <string name="keywords_time_zone" msgid="6402919157244589055">"time zone"</string>
+ <string name="keywords_time_zone" msgid="6402919157244589055">"timezone"</string>
<string name="keywords_draw_overlay" msgid="3170036145197260392">"Chat head, system, alert, window, dialogue, display, on top other apps, draw"</string>
<string name="keywords_flashlight" msgid="2133079265697578183">"Flashlight, Light, Torch"</string>
<string name="keywords_change_wifi_state" msgid="7573039644328488165">"wifi, wi-fi, toggle, control"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Create a mode"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limit interruptions"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Turn on Do Not Disturb"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarms and media sounds can interrupt"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Set a schedule"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schedule"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>hr, <xliff:g id="MINUTES">%2$d</xliff:g>min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Turn on automatically"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schedule"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silence phone at certain times"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Set do not disturb rules"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"open notification"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Allow notification snoozing"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Notification dot on app icon"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Notification bundles"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bubble this conversation"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"All"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode on secondary displays"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Enable freeform windows"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Enable support for freeform windows."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Enable freeform windowing on second display"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Enable freeform windows only on secondary display."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Enable non-resizable in Multi-window"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Allows non-resizable apps to be in Multi-window"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Override force-dark"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"This device\'s data partition needs to be converted to ext4 before using the 16 KB developer option. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Activating the 16 KB option will require one more reboot after this. Once you are in this mode, you can switch back and forth between 4 KB and 16 KB mode with a single reboot. Some features will be disabled in these modes, so some applications may not work. To return the device to Production mode, you would need to switch back to 4 KB mode and then lock the bootloader, which factory resets the device. Once the device successfully boots into Android, disable OEM unlocking in Developer options. The device will be wiped and the filesystem will be changed to ext4 after confirmation. Once this completes, please come back to enable 16 KB again."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Erase all data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Failed to reformat and wipe the data partition to ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Bootloader unlock required"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"This device needs to have the bootloader unlocked before using the 16 KB developer option. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. All user data and settings will be wiped when activating 16 KB mode. Once the bootloader is unlocked, activating the 16 KB option will require two reboots. Once you are in this mode, you can switch back and forth between 4 KB and 16 KB mode with a single reboot. Some features will be disabled in these modes, so some applications may not work. To return the device to Production mode, you would need to switch back to 4 KB mode and then OEM/bootloader lock (which factory resets) the device. Please unlock the bootloader and try again. You can see instructions for how to do this at <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Using 4 KB page-agnostic mode"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"You are in the 4 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the Production mode, you must lock the bootloader of the device. Tap to read more."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"You are in the 4 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the Production mode, you must lock the bootloader of the device. This would factory reset the device again and restore it to production settings. Once the device successfully boots into Android, disable OEM unlocking in Developer options. If the device fails to boot into Android or is unstable, re-flash the device with the latest factory images from <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> and select \'Wipe device\', \'Lock bootloader\' and \'Force flash all partitions\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Using 16 KB page-agnostic mode"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"You are in the 16 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must switch back to 4 KB mode and then lock the bootloader of the device. Tap to read more."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"You are in the 16 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must switch back to 4 KB mode and then lock the bootloader of the device. This would factory reset the device again and restore it to production settings. Once the device successfully boots into Android, disable OEM unlocking in Developer options. If the device fails to boot into Android or is unstable, re-flash the device with the latest factory images from <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> and select \'Wipe device\', \'Lock bootloader\' and \'Force flash all partitions\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 KB page-agnostic mode"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Read more"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Bug report handler"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Choose what you’ll see on your screen when your tablet is docked. Your device may use more energy when a screen saver is used."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Customise"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Customise <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A reboot is required to enable freeform support."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"A reboot is required to enable legacy freeform windowing support."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"A reboot is required to change freeform windowing support."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"A reboot is required to force freeform windowing on secondary displays."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial audio"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 784f0ef..d2163b9 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"This is needed since Identity Check is on"</string>
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote authenticator unlock"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
- <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"The keyboard ignores quickly repeated presses of the same key within <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Move magnifier with 1 finger"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Drag 1 finger to move around the screen"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Move the magnification area by dragging one finger."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Move the magnification area by dragging two fingers."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Unavailable while only magnifying part of the screen"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tap a button to zoom"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Quickly zoom in on the screen to make content larger"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>To zoom in:</b><br/> {0,number,integer}. Use shortcut to start magnification<br/> {1,number,integer}. Tap the screen<br/> {2,number,integer}. Drag two fingers to move around screen<br/> {3,number,integer}. Pinch with two fingers to adjust zoom<br/> {4,number,integer}. Use shortcut to stop magnification<br/><br/> <b>To zoom in temporarily:</b><br/> {0,number,integer}. Make sure that your magnification type is set to full screen<br/> {1,number,integer}. Use shortcut to start magnification<br/> {2,number,integer}. Touch and hold anywhere on the screen<br/> {3,number,integer}. Drag finger to move around screen<br/> {4,number,integer}. Lift finger to stop magnification"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>To zoom in:</b><br/> {0,number,integer}. Use shortcut to start magnification<br/> {1,number,integer}. Tap the screen<br/> {2,number,integer}. Drag 2 fingers to move around the screen<br/> {3,number,integer}. Pinch with 2 fingers to adjust zoom<br/> {4,number,integer}. Use shortcut to stop magnification<br/><br/> You can also zoom in temporarily and more."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>To zoom in:</b><br/> {0,number,integer}. Use shortcut to start magnification<br/> {1,number,integer}. Tap the screen<br/> {2,number,integer}. Drag 1 or 2 fingers to move around the screen<br/> {3,number,integer}. Pinch with 2 fingers to adjust zoom<br/> {4,number,integer}. Use shortcut to stop magnification<br/><br/> You can also zoom in temporarily and more."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"When magnification is turned on, you can zoom in on your screen.\n\n"<b>"To zoom"</b>", start magnification, then tap anywhere on the screen.\n"<ul><li>"Drag 2 or more fingers to scroll"</li>\n<li>"Pinch 2 or more fingers to adjust zoom"</li></ul>\n\n<b>"To zoom temporarily"</b>", start magnification, then touch and hold anywhere on the screen.\n"<ul><li>"Drag to move around the screen"</li>\n<li>"Lift finger to zoom out"</li></ul>\n\n"You can’t zoom in on the keyboard or navigation bar."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> of <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Accessibility button shortcut"</string>
@@ -3222,7 +3217,7 @@
<string name="keywords_time_format" msgid="5384803098766166820">"Use 24-hour format"</string>
<string name="keywords_app_default" msgid="8977706259156428770">"Open with"</string>
<string name="keywords_applications_settings" msgid="999926810912037792">"Applications"</string>
- <string name="keywords_time_zone" msgid="6402919157244589055">"time zone"</string>
+ <string name="keywords_time_zone" msgid="6402919157244589055">"timezone"</string>
<string name="keywords_draw_overlay" msgid="3170036145197260392">"Chat head, system, alert, window, dialogue, display, on top other apps, draw"</string>
<string name="keywords_flashlight" msgid="2133079265697578183">"Flashlight, Light, Torch"</string>
<string name="keywords_change_wifi_state" msgid="7573039644328488165">"wifi, wi-fi, toggle, control"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Create a mode"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limit interruptions"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Turn on Do Not Disturb"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarms and media sounds can interrupt"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Set a schedule"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schedule"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>hr, <xliff:g id="MINUTES">%2$d</xliff:g>min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Turn on automatically"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schedule"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silence phone at certain times"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Set do not disturb rules"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"open notification"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Allow notification snoozing"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Notification dot on app icon"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Notification bundles"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bubble this conversation"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"All"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode on secondary displays"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Enable freeform windows"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Enable support for freeform windows."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Enable freeform windowing on second display"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Enable freeform windows only on secondary display."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Enable non-resizable in Multi-window"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Allows non-resizable apps to be in Multi-window"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Override force-dark"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"This device\'s data partition needs to be converted to ext4 before using the 16 KB developer option. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Activating the 16 KB option will require one more reboot after this. Once you are in this mode, you can switch back and forth between 4 KB and 16 KB mode with a single reboot. Some features will be disabled in these modes, so some applications may not work. To return the device to Production mode, you would need to switch back to 4 KB mode and then lock the bootloader, which factory resets the device. Once the device successfully boots into Android, disable OEM unlocking in Developer options. The device will be wiped and the filesystem will be changed to ext4 after confirmation. Once this completes, please come back to enable 16 KB again."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Erase all data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Failed to reformat and wipe the data partition to ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Bootloader unlock required"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"This device needs to have the bootloader unlocked before using the 16 KB developer option. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. All user data and settings will be wiped when activating 16 KB mode. Once the bootloader is unlocked, activating the 16 KB option will require two reboots. Once you are in this mode, you can switch back and forth between 4 KB and 16 KB mode with a single reboot. Some features will be disabled in these modes, so some applications may not work. To return the device to Production mode, you would need to switch back to 4 KB mode and then OEM/bootloader lock (which factory resets) the device. Please unlock the bootloader and try again. You can see instructions for how to do this at <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Using 4 KB page-agnostic mode"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"You are in the 4 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the Production mode, you must lock the bootloader of the device. Tap to read more."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"You are in the 4 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the Production mode, you must lock the bootloader of the device. This would factory reset the device again and restore it to production settings. Once the device successfully boots into Android, disable OEM unlocking in Developer options. If the device fails to boot into Android or is unstable, re-flash the device with the latest factory images from <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> and select \'Wipe device\', \'Lock bootloader\' and \'Force flash all partitions\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Using 16 KB page-agnostic mode"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"You are in the 16 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must switch back to 4 KB mode and then lock the bootloader of the device. Tap to read more."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"You are in the 16 KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must switch back to 4 KB mode and then lock the bootloader of the device. This would factory reset the device again and restore it to production settings. Once the device successfully boots into Android, disable OEM unlocking in Developer options. If the device fails to boot into Android or is unstable, re-flash the device with the latest factory images from <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> and select \'Wipe device\', \'Lock bootloader\' and \'Force flash all partitions\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 KB page-agnostic mode"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Read more"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Bug report handler"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Choose what you’ll see on your screen when your tablet is docked. Your device may use more energy when a screen saver is used."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Customise"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Customise <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A reboot is required to enable freeform support."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"A reboot is required to enable legacy freeform windowing support."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"A reboot is required to change freeform windowing support."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"A reboot is required to force freeform windowing on secondary displays."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial audio"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 11aecf8..06bf2b5 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -410,6 +410,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"This is needed since Identity Check is on"</string>
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator Unlock"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
@@ -1911,8 +1912,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
- <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"The keyboard ignores quickly repeated presses of the same key within <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
@@ -3353,6 +3352,8 @@
<string name="zen_mode_active_text" msgid="5002406772481439437">"ON"</string>
<string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Not set"</string>
<string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Disabled"</string>
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Create a mode"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limit interruptions"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Turn on Do Not Disturb"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarms and media sounds can interrupt"</string>
@@ -3371,8 +3372,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Set a schedule"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schedule"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> hr, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Turn on automatically"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schedule"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silence phone at certain times"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Set Do Not Disturb rules"</string>
@@ -3516,6 +3516,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"open notification"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Allow notification snoozing"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Notification dot on app icon"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Notification bundles"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bubble this conversation"</string>
@@ -3805,6 +3806,8 @@
<string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"All"</string>
<string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{No apps can interrupt}=1{{app_1} can interrupt}=2{{app_1} and {app_2} can interrupt}=3{{app_1}, {app_2}, and {app_3} can interrupt}other{{app_1}, {app_2}, and # more can interrupt}}"</string>
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -4829,8 +4832,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode on secondary displays"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Enable freeform windows"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Enable support for freeform windows."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Enable freeform windowing on second display"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Enable freeform windows only on secondary display."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Enable non-resizable in multi window"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Allows non-resizable apps to be in multi window"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Override force-dark"</string>
@@ -4898,17 +4903,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"This device’s data partition needs to be converted to ext4 before using the 16KB developer option. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Activating the 16KB option will require one more reboot after this. Once you are in this mode, you can switch back and forth between 4KB and 16KB mode with a single reboot. Some features will be disabled in these modes, so some applications may not work. To return the device to production mode, you would need to switch back to 4KB mode and then lock the bootloader, which factory resets the device. After the device successfully boots into Android, disable OEM unlocking in Developer options. The device will be wiped and the filesystem will be changed to ext4 after confirmation. After this completes, please come back to enable 16KB again."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Erase all data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Failed to reformat and wipe the data partition to ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Bootloader Unlock Required"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"This device needs to have the bootloader unlocked before using the 16KB developer option. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. All user data and settings will be wiped when activating 16KB mode. Once the bootloader is unlocked, activating the 16KB option will require two reboots. Once you are in this mode, you can switch back and forth between 4KB and 16KB mode with a single reboot. Some features will be disabled in these modes, so some applications may not work. To return the device to production mode, you would need to switch back to 4KB mode and then OEM/bootloader lock (which factory resets) the device. Please unlock the bootloader and try again. You can see instructions for how to do this at <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Using 4KB page-agnostic mode"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"You are in the 4KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must lock the bootloader of the device. Tap to read more."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"You are in the 4KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must lock the bootloader of the device. This would factory reset the device again and restore it to production settings. After the device successfully boots into Android, disable OEM unlocking in Developer options. If the device fails to boot into Android or is unstable, re-flash the device with the latest factory images from <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> and select \'Wipe Device\', \'Lock Bootloader\' and \'Force Flash all partitions\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Using 16KB page-agnostic mode"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"You are in the 16KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must, switch back to 4KB mode and then lock the bootloader of the device. Tap to read more."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"You are in the 16KB mode of the page-agnostic mode. Software integrity cannot be guaranteed in this mode, and any data stored on the phone while the bootloader is unlocked may be at risk. Some features will be disabled in these modes, so some applications may not work. In order to re-enter the production mode, you must, switch back to 4KB mode and then lock the bootloader of the device. This would factory reset the device again and restore it to production settings. After the device successfully boots into Android, disable OEM unlocking in Developer options. If the device fails to boot into Android or is unstable, re-flash the device with the latest factory images from <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> and select \'Wipe Device\', \'Lock Bootloader\' and \'Force Flash all partitions\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB Page-agnostic Mode"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Read more"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Bug report handler"</string>
@@ -5154,8 +5156,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Choose what you’ll see on your screen when your tablet is docked. Your device may use more energy when a screen saver is used."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Customize"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Customize <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A reboot is required to enable freeform support."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"A reboot is required to enable legacy freeform windowing support."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"A reboot is required to change freeform windowing support."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"A reboot is required to force freeform windowing on secondary displays."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial Audio"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index d4d81fe..e717adb 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Esta acción es necesaria porque Identity Check está activada"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Instala apps"</b>\n"Instala apps que quieres mantener privadas en tu espacio"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Importante"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Las apps se detienen cuando bloqueas tu espacio"</b>\n"Cuando bloquees tu espacio, las apps en él se detendrán, y no recibirás notificaciones de ellas"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"No se recomienda el uso de espacios privados para apps que necesitan ejecutarse en segundo plano o enviar notificaciones críticas, como apps médicas. Esto se debe a que las notificaciones y la actividad en segundo plano se detienen cuando el espacio está bloqueado.\n\nLas apps del espacio privado no se mostrarán en el Administrador de permisos, el Panel de privacidad ni en otras secciones de configuración cuando el espacio privado esté bloqueado.\n\nNo se puede transferir el espacio privado a un dispositivo nuevo. Deberás configurar un espacio privado 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_settings_footer_text" msgid="3742468470394835356">"No se recomienda el uso de espacios privados para apps que necesitan ejecutarse en segundo plano o enviar notificaciones críticas, como apps médicas. Esto se debe a que las notificaciones y la actividad en segundo plano se detienen cuando el espacio está bloqueado.\n\nLas apps del espacio privado no se mostrarán en el Administrador de permisos, el Panel de privacidad ni en otras secciones de configuración cuando el espacio privado esté bloqueado.\n\nNo se puede restablecer el espacio privado en un dispositivo nuevo. Deberás configurar otro espacio si quieres usarlo en otro dispositivo.\n\nCualquier persona que conecte tu dispositivo a una computadora o le instale apps maliciosas podría acceder a tu espacio privado."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"No se recomienda el uso de espacios privados para apps que necesitan ejecutarse en segundo plano o enviar notificaciones críticas, como apps médicas. Esto se debe a que las notificaciones y la actividad en segundo plano se detienen cuando el espacio está bloqueado.\n\nLas apps del espacio privado no se mostrarán en el Administrador de permisos, el panel de privacidad ni en otras secciones de configuración cuando el espacio privado esté bloqueado.\n\nNo se puede transferir el espacio privado a un dispositivo nuevo. Deberás configurar un espacio privado 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_settings_footer_text" msgid="3742468470394835356">"No se recomienda el uso de espacios privados para apps que necesitan ejecutarse en segundo plano o enviar notificaciones críticas, como apps médicas. Esto se debe a que las notificaciones y la actividad en segundo plano se detienen cuando el espacio está bloqueado.\n\nLas apps del espacio privado no se mostrarán en el Administrador de permisos, el panel de privacidad ni en otras secciones de configuración cuando el espacio privado esté bloqueado.\n\nNo se puede restablecer el espacio privado en un dispositivo nuevo. Deberás configurar otro espacio si quieres usarlo en otro dispositivo.\n\nCualquier persona que conecte tu dispositivo a una computadora o le instale apps maliciosas podría acceder a tu espacio privado."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Más información sobre el espacio privado"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"El proceso tardará unos minutos"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando espacio privado…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opciones"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidad"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
- <string name="show_ime" msgid="4334255501724746849">"Usar teclado en pantalla"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Mientras el teclado físico está activo"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Rechazo de teclas"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"El teclado ignora las presiones de la misma tecla repetidas con rapidez dentro de los <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar de todos modos"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configuración de ampliación"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mueve la lupa con 1 dedo"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arrastra con 1 dedo para moverte por la pantalla"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Arrastrar un dedo para mover el área de ampliación."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Arrastrar dos dedos para mover el área de ampliación."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"No disponible mientras se amplía parte de la pantalla"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Presiona un botón para ampliar"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Acerca rápidamente la pantalla para que el contenido se muestre en un tamaño más grande"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Para acercar, haz lo siguiente:</b><br/> {0,number,integer}. Usa la combinación para comenzar la ampliación.<br/> {1,number,integer}. Presiona la pantalla.<br/> {2,number,integer}. Arrastra 2 dedos para moverte por la pantalla.<br/> {3,number,integer}. Pellizca con 2 dedos para ajustar el zoom.<br/> {4,number,integer}. Usa la combinación para detener la ampliación.<br/><br/> <b>Para acercar de manera temporal, haz lo siguiente:</b><br/> {0,number,integer}. Asegúrate de que el tipo de ampliación esté configurado en pantalla completa.<br/> {1,number,integer}. Usa la combinación para comenzar la ampliación.<br/> {2,number,integer}. Mantén presionada cualquier parte de la pantalla.<br/> {3,number,integer}. Arrastra un dedo para moverte por la pantalla.<br/> {4,number,integer}. Levanta el dedo para detener la ampliación."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Para acercar, haz lo siguiente:</b><br/> {0,number,integer}. Usa el atajo para comenzar la ampliación.<br/> {1,number,integer}. Presiona la pantalla.<br/> {2,number,integer}. Arrastra 2 dedos para moverte por la pantalla.<br/> {3,number,integer}. Pellizca con 2 dedos para ajustar el zoom.<br/> {4,number,integer}. Usa el atajo para detener la ampliación.<br/><br/> También puedes acercar temporalmente y realizar otras acciones."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Para acercar, haz lo siguiente:</b><br/> {0,number,integer}. Usa el atajo para comenzar la ampliación.<br/> {1,number,integer}. Presiona la pantalla.<br/> {2,number,integer}. Arrastra con 1 o 2 dedos para moverte por la pantalla.<br/> {3,number,integer}. Pellizca con 2 dedos para ajustar el zoom.<br/> {4,number,integer}. Usa el atajo para detener la ampliación.<br/><br/> También puedes acercar temporalmente y realizar otras acciones."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Cuando la ampliación esté activada, podrás acercar el contenido en pantalla.\n\n"<b>"Para usar el zoom"</b>", inicia la ampliación y, luego, presiona cualquier parte de la pantalla.\n"<ul><li>"Arrastra 2 o más dedos para desplazarte."</li>\n<li>"Pellizca con 2 o más dedos para ajustar el zoom."</li></ul>\n\n<b>"Para hacer zoom de manera temporal"</b>", inicia la ampliación y, luego, mantén presionada cualquier parte de la pantalla.\n"<ul><li>"Arrastra el dedo para moverte por la pantalla."</li>\n<li>"Levanta el dedo para alejar el contenido."</li></ul>\n\n"No puedes acercar con el teclado ni en la barra de navegación."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Página <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Acceso directo al botón de accesibilidad"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Crea un modo"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar las interrupciones"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activar No interrumpir"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Los sonidos multimedia y las alarmas pueden interrumpir"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Establecer un programa"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programa"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Activar automáticamente"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programa"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silenciar en ciertos momentos"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Definir reglas de No interrumpir"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"notificación abierta"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Permitir posponer notificaciones"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Punto de notificación en ícono de app"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Paquetes de notificaciones"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Burbujas"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbujas"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostrar esta conversación en una burbuja"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todo"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que las apps anulen No interrumpir"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que pueden interrumpir"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Seleccionar más apps"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Funda"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batería"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel de Configuración"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Forzar modo de escritorio"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Fuerza el modo de escritorio experimental en pantallas secundarias."</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Habilitar ventanas de formato libre"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Habilitar la compatibilidad con las ventanas de formato libre"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Habilitar renderización libre en pant. secundaria"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Habilitar las ventanas de formato libre solo en la pantalla secundarias"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Habilitar apps que no cambian de tamaño en Multiventana"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite que las apps que no cambian de tamaño aparezcan en Multiventana."</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Anular forzar el modo oscuro"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"La partición de datos del dispositivo debe convertirse a ext4 antes de usar la opción para desarrolladores de 16 KB. No se puede garantizar la integridad del software en este modo, y los datos almacenados en el teléfono podrían estar en riesgo durante el desbloqueo del bootloader. Si activas la opción de 16 KB, deberás volver a reiniciar. Una vez que se habilite este modo, podrás cambiar entre los modos de 4 KB y 16 KB con un único reinicio. Algunas funciones quedan inhabilitadas en estos modos, así que algunas aplicaciones podrían no ejecutarse. Para revertir el dispositivo al modo de producción, debes volver al modo de 4 KB y bloquear el bootloader, lo que restablecerá la configuración del dispositivo. Una vez que el dispositivo se inicie correctamente ejecutando Android, inhabilita el desbloqueo para OEM en Opciones para desarrolladores. Después de la confirmación, se limpiará el dispositivo, y el sistema de archivos cambiará a ext4. Una vez que se complete el proceso, vuelve a habilitar nuevamente el modo de 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Borrar todos los datos"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"No se pudo volver a formatear el dispositivo y falló la limpieza de la partición de datos a ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Se requiere desbloquear el bootloader"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Este dispositivo debe tener el bootloader desbloqueado para poder usar la opción para desarrolladores de 16 KB. No se puede garantizar la integridad del software en este modo, y los datos almacenados en el teléfono podrían estar en riesgo durante el desbloqueo del bootloader. Se limpiarán la configuración y los datos del usuario cuando se active el modo de 16 KB. Una vez que se desbloquee el bootloader, deberás reiniciar dos veces para activar la opción de 16 KB. Una vez que se habilite este modo, podrás cambiar entre los modos de 4 KB y 16 KB con un único reinicio. Algunas funciones quedan inhabilitadas en estos modos, así que algunas aplicaciones podrían no ejecutarse. Para revertir el dispositivo al modo de producción, debes volver al modo de 4 KB y bloquear el dispositivo con OEM/bootloader (lo que restablecerá la configuración de fábrica). Desbloquea el bootloader y vuelve a intentarlo. Puedes ver las instrucciones de este proceso en <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Modo independiente de la página de 4 KB en uso"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Estás en el modo de 4 KB del modo independiente de la página. No se puede garantizar la integridad del software en este modo, y los datos almacenados en el teléfono podrían estar en riesgo durante el desbloqueo del bootloader. Algunas funciones quedan inhabilitadas en estos modos, así que algunas aplicaciones podrían no ejecutarse. Para volver a entrar al modo de producción, debes bloquear el bootloader del dispositivo. Presiona para obtener más información."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Estás en el modo de 4 KB del modo independiente de la página. No se puede garantizar la integridad del software en este modo, y los datos almacenados en el teléfono podrían estar en riesgo durante el desbloqueo del bootloader. Algunas funciones quedan inhabilitadas en estos modos, así que algunas aplicaciones podrían no ejecutarse. Para volver a entrar al modo de producción, debes bloquear el bootloader del dispositivo. Se restablecerá la configuración de fábrica del dispositivo, que quedará en modo de producción. Una vez que el dispositivo se inicie correctamente ejecutando Android, inhabilita el desbloqueo para OEM en Opciones para desarrolladores. Si el dispositivo no se puede iniciar ejecutando Android o si es inestable, actualízalo con las imágenes de fábrica más recientes de <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>, o bien usa <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> y selecciona \"Limpiar el dispositivo\", \"Bloquear el bootloader\" y \"Forzar la escritura de todas las particiones en la memoria flash\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Modo independiente de la página de 16 KB en uso"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Estás en el modo de 16 KB del modo independiente de la página. No se puede garantizar la integridad del software en este modo, y los datos almacenados en el teléfono podrían estar en riesgo durante el desbloqueo del bootloader. Algunas funciones quedan inhabilitadas en estos modos, así que algunas aplicaciones podrían no ejecutarse. Para volver a entrar al modo de producción, debes volver al modo de 4 KB y bloquear el bootloader del dispositivo. Presiona para obtener más información."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Estás en el modo de 16 KB del modo independiente de la página. No se puede garantizar la integridad del software en este modo, y los datos almacenados en el teléfono podrían estar en riesgo durante el desbloqueo del bootloader. Algunas funciones quedan inhabilitadas en estos modos, así que algunas aplicaciones podrían no ejecutarse. Para volver a entrar al modo de producción, debes volver al modo de 4 KB y bloquear el bootloader del dispositivo. Esta acción restablecerá el dispositivo a la configuración de fábrica y hará que sus parámetros de configuración vuelvan a los de producción. Una vez que el dispositivo se inicie correctamente ejecutando Android, inhabilita el desbloqueo para OEM en Opciones para desarrolladores. Si el dispositivo no se puede iniciar ejecutando Android o si es inestable, actualízalo con las imágenes de fábrica más recientes de <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>, o bien usa <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> y selecciona \"Limpiar el dispositivo\", \"Bloquear el bootloader\" y \"Forzar la escritura de todas las particiones en la memoria flash\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Modo independiente de la página de 16 KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Leer más"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Controlador de informes de errores"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Elige lo que quieres ver en la pantalla cuando la tablet está conectada. Es posible que el dispositivo use más energía cuando se utiliza el protector de pantalla."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Se debe reiniciar para habilitar la asistencia de formato libre."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Se debe reiniciar para forzar el modo de computadora en las pantallas secundarias."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Se debe reiniciar para habilitar la compatibilidad con la renderización heredada en ventanas de formato libre."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Se debe reiniciar para cambiar la compatibilidad de la renderización en ventanas de formato libre."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Se debe reiniciar para forzar la renderización en ventanas de formato libre para pantallas secundarias."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar ahora"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar más adelante"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio espacial"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 11bf83e..7d93f44 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Es necesario hacerlo porque la comprobación de la identidad está activada"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opciones"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidad"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
- <string name="show_ime" msgid="4334255501724746849">"Usar teclado en pantalla"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Mantenlo en pantalla mientras el teclado físico está activo"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Teclas de rebote"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"El teclado ignora las pulsaciones repetidas de la misma tecla que se hayan hecho en <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar de todos modos"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ajustes de ampliación"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mover la lupa con 1 dedo"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arrastra 1 dedo para moverte por la pantalla."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mueve la lupa de área arrastrándola con un dedo."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mueve la lupa de área arrastrándola con dos dedos."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"No disponible cuando se amplía solo parte de la pantalla"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Toca un botón para ampliar"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Amplía rápidamente la pantalla para que el contenido se vea más grande"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Para ampliar:</b><br/> {0,number,integer}. Usa el acceso directo para iniciar la ampliación.<br/> {1,number,integer}. Toca la pantalla.<br/> {2,number,integer}. Arrastra dos dedos para moverte por la pantalla.<br/> {3,number,integer}. Pellizca con dos dedos para ajustar el zoom.<br/> {4,number,integer}. Usa el acceso directo para detener la ampliación.<br/><br/> <b>Para ampliar de forma temporal:</b><br/> {0,number,integer}. Asegúrate de que has configurado el tipo de ampliación como pantalla completa.<br/> {1,number,integer}. Usa el acceso directo para iniciar la ampliación.<br/> {2,number,integer}. Mantén pulsada cualquier parte de la pantalla.<br/> {3,number,integer}. Arrastra el dedo para moverte por la pantalla.<br/> {4,number,integer}. Levanta el dedo para detener la ampliación."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Para ampliar:</b><br/> {0,number,integer}. Usa el acceso directo para iniciar la ampliación.<br/> {1,number,integer}. Toca la pantalla.<br/> {2,number,integer}. Arrastra 2 dedos para moverte por la pantalla.<br/> {3,number,integer}. Pellizca con 2 dedos para ajustar el zoom.<br/> {4,number,integer}. Usa este acceso directo para detener la ampliación.<br/><br/> También puedes ampliar temporalmente y más."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Para ampliar:</b><br/> {0,number,integer}. Usa el acceso directo para iniciar la ampliación.<br/> {1,number,integer}. Toca la pantalla.<br/> {2,number,integer}. Arrastra 1 o 2 dedos para moverte por la pantalla.<br/> {3,number,integer}. Pellizca con 2 dedos para ajustar el zoom.<br/> {4,number,integer}. Usa este acceso directo para detener la ampliación.<br/><br/> También puedes ampliar temporalmente y más."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Si la ampliación está activada, puedes ampliar la pantalla.\n\n"<b>"Para ampliar"</b>", inicia la ampliación y toca la parte de la pantalla que quieras ampliar.\n"<ul><li>"Arrastra al menos dos dedos para desplazarte."</li>\n<li>"Pellizca la pantalla con al menos dos dedos para ajustar el zoom."</li></ul>\n\n<b>"Para ampliar elementos temporalmente"</b>", inicia la ampliación y mantén pulsada cualquier parte de la pantalla.\n"<ul><li>"Arrastra un dedo para desplazarte por la pantalla."</li>\n<li>"Levanta el dedo para reducir la imagen."</li></ul>\n\n"El teclado y la barra de navegación no se pueden ampliar."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Página <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Acceso directo al botón de accesibilidad"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Crear un modo"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar interrupciones"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activar No molestar"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Las alarmas y los sonidos multimedia pueden interrumpirte"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Crea una programación"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programar"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Activar automáticamente"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programación"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silenciar teléfono en ciertos momentos"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Definir reglas de No molestar"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"abrir notificación"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Permitir que se pospongan las notificaciones"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Burbuja de notificación en el icono de la aplicación"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Paquetes de notificaciones"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Burbujas"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbujas"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Convertir esta conversación en burbuja"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todas"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que las aplicaciones anulen el modo No molestar"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicaciones que pueden interrumpirte"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Seleccionar más aplicaciones"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Funda"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batería"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel de ajustes"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Forzar modo Escritorio"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Fuerza el modo Escritorio experimental en pantallas secundarias"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Habilitar ventanas de forma libre"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Habilita la compatibilidad con ventanas de forma libre."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Activar ventana de forma libre en pant. secundaria"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Habilita ventanas de forma libre solo en pantallas secundarias."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Habilitar aplicaciones de tamaño no modificable en multiventana"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite que las aplicaciones de tamaño no modificable se muestren en multiventana"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Anular Forzar modo Oscuro"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"La partición de datos de este dispositivo debe convertirse a ext4 antes de usar la opción para desarrolladores de 16 KB. En este modo no se puede garantizar la integridad del software, y los datos que haya almacenados en el teléfono mientras el bootloader está desbloqueado pueden correr peligro. Para activar la opción de 16 KB, se necesitará un reinicio más. Una vez que estés en este modo, podrás alternar entre el modo de 4 KB y de 16 KB con un solo reinicio. Algunas funciones se inhabilitarán en estos modos, por lo que es posible que algunas aplicaciones no funcionen. Para que el dispositivo vuelva al modo de producción, tendrás que volver al modo de 4 KB y luego bloquear el bootloader, lo que restablecerá el estado de fábrica del dispositivo. Una vez que el dispositivo se inicie correctamente en Android, inhabilita el desbloqueo de OEM en Opciones para desarrolladores. Tras confirmar, se borrarán los datos del dispositivo y el sistema de archivos cambiará a ext4. Cuando se complete esta operación, vuelve a habilitar la opción de 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Borrar todos los datos"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"No se ha podido borrar ni reformatear la partición de datos a ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Es necesario desbloquear el bootloader"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Para usar la opción para desarrolladores de 16 kB, este dispositivo debe tener el bootloader desbloqueado. En este modo no se puede garantizar la integridad del software, y los datos que haya almacenados en el teléfono mientras el bootloader está desbloqueado pueden correr peligro. Al activar el modo de 16 kB, se borrarán todos los ajustes y datos del usuario. Una vez que el bootloader esté desbloqueado, harán falta dos reinicios para activar la opción de 16 kB. Una vez que estés en este modo, podrás alternar entre el modo de 4 kB y de 16 kB con un solo reinicio. Algunas funciones se inhabilitarán en estos modos, por lo que es posible que algunas aplicaciones no funcionen. Para que el dispositivo vuelva al modo de producción, tendrás que volver al modo de 4 kB y luego bloquear el OEM o el bootloader, lo que restablece el estado de fábrica del dispositivo. Desbloquea el bootloader e inténtalo de nuevo. Puedes consultar las instrucciones para hacerlo en <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Usando el modo independiente de la página de 4 kB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Estás en el modo de 4 KB del modo independiente de la página. En este modo no se puede garantizar la integridad del software, y los datos que haya almacenados en el teléfono mientras el bootloader está desbloqueado pueden correr peligro. Algunas funciones se inhabilitarán en estos modos, por lo que es posible que algunas aplicaciones no funcionen. Para volver al modo de producción, debes bloquear el bootloader del dispositivo. Toca para ver más información."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Estás en el modo de 4 KB del modo independiente de la página. En este modo no se puede garantizar la integridad del software, y los datos que haya almacenados en el teléfono mientras el bootloader está desbloqueado pueden correr peligro. Algunas funciones se inhabilitarán en estos modos, por lo que es posible que algunas aplicaciones no funcionen. Para volver al modo de producción, debes bloquear el bootloader del dispositivo. Esta acción restablecerá de nuevo el estado de fábrica del dispositivo y restaurará los ajustes de producción. Una vez que el dispositivo se inicie correctamente en Android, inhabilita el desbloqueo de OEM en Opciones para desarrolladores. Si el dispositivo no se puede iniciar en Android o es inestable, vuelve a instalar las últimas imágenes de fábrica de <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> o usa <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> y selecciona Wipe Device (Borrar los datos del dispositivo), Lock Bootloader (Bloquear bootloader) y Force Flash all partitions (Forzar la instalación de todas las particiones)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Usando el modo independiente de la página de 16 kB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Estás en el modo de 16 KB del modo independiente de la página. En este modo no se puede garantizar la integridad del software, y los datos que haya almacenados en el teléfono mientras el bootloader está desbloqueado pueden correr peligro. Algunas funciones se inhabilitarán en estos modos, por lo que es posible que algunas aplicaciones no funcionen. Para volver al modo de producción, debes volver al modo de 4 KB y luego bloquear el bootloader del dispositivo. Toca para ver más información."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Estás en el modo de 16 KB del modo independiente de la página. En este modo no se puede garantizar la integridad del software, y los datos que haya almacenados en el teléfono mientras el bootloader está desbloqueado pueden correr peligro. Algunas funciones se inhabilitarán en estos modos, por lo que es posible que algunas aplicaciones no funcionen. Para volver al modo de producción, debes volver al modo de 4 KB y luego bloquear el bootloader del dispositivo. Esta acción restablecerá de nuevo el estado de fábrica del dispositivo y restaurará los ajustes de producción. Una vez que el dispositivo se inicie correctamente en Android, inhabilita el desbloqueo de OEM en Opciones para desarrolladores. Si el dispositivo no se puede iniciar en Android o es inestable, vuelve a instalar las últimas imágenes de fábrica de <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> o usa <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> y selecciona Wipe Device (Borrar los datos del dispositivo), Lock Bootloader (Bloquear bootloader) y Force Flash all partitions (Forzar la instalación de todas las particiones)."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Modo independiente de la página de 16 KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Más información"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Controlador de informes de errores"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Elige lo que quieres ver en tu pantalla cuando tu tablet está conectada en la base. Es posible que el dispositivo gaste más batería si se usa un salvapantallas."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Debes reiniciar para habilitar el formato libre."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Debes reiniciar para forzar el modo Escritorio en pantallas secundarias."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Debes reiniciar para habilitar la compatibilidad con ventanas de forma libre antiguas."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Debes reiniciar para cambiar la compatibilidad con ventanas de forma libre."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Debes reiniciar para forzar las ventanas de forma libre en pantallas secundarias."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar ahora"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar más tarde"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio espacial"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index e616a1f..5d2aa6a 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"See on vajalik, kuna identiteedi kontrollimine on sisse lülitatud"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Valikud"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Juurdepääsetavus"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Füüsiline klaviatuur"</string>
- <string name="show_ime" msgid="4334255501724746849">"Kasuta ekraaniklaviatuuri"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Hoia seda ekraanil, kui füüsiline klaviatuur on aktiivne"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Ühekordse puudutusega klahvid"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Klaviatuur eirab <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms jooksul tehtud sama klahvi korduvaid vajutusi"</string>
<string name="slow_keys" msgid="2891452895499690837">"Aeglased klahvid"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Jätka ikkagi"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Tühista"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Suurendamisseaded"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Luubi liigutamine ühe sõrmega"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Kuval liikumiseks lohistage sõrme."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Suurendusala teisaldamiseks lohistage ühe sõrmega."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Suurendusala teisaldamiseks lohistage kahe sõrmega."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Pole saadaval, kui suurendatakse ainult osa ekraanist"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Suumimiseks puudutage nuppu"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Suumige ekraanil kiiresti sisse, et sisu suuremalt kuvada"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Sissesuumimiseks toimige järgmiselt.</b><br/> {0,number,integer}. Kasutage suurendamise alustamiseks otseteed.<br/> {1,number,integer}. Puudutage ekraani.<br/> {2,number,integer}. Ekraanikuval liikumiseks lohistage kahe sõrmega.<br/> {3,number,integer}. Suumi kohandamiseks liigutage ekraanil kaht sõrme kokku-lahku.<br/> {4,number,integer}. Kasutage suurendamise lõpetamiseks otseteed.<br/><br/> <b>Ajutiseks sissesuumimiseks toimige järgmiselt.</b><br/> {0,number,integer}. Veenduge, et suurendamise tüübiks oleks valitud täisekraan.<br/> {1,number,integer}. Kasutage suurendamise alustamiseks otseteed.<br/> {2,number,integer}. Hoidke sõrme kus tahes ekraanikuval.<br/> {3,number,integer}. Lohistage ekraanikuval liikumiseks sõrme.<br/> {4,number,integer}. Suurendamise lõpetamiseks tõstke sõrm ekraanikuvalt."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Sissesuumimiseks toimige järgmiselt.</b><br/> {0,number,integer}. Kasutage suurendamise alustamiseks otseteed.<br/> {1,number,integer}. Puudutage ekraani.<br/> {2,number,integer}. Ekraanikuval liikumiseks lohistage kahe sõrmega.<br/> {3,number,integer}. Suumi kohandamiseks liigutage ekraanil kaht sõrme kokku-lahku.<br/> {4,number,integer}. Kasutage suurenduse peatamiseks otseteed<br/><br/> Saate ka ajutiselt sisse suumida ja muud teha."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Sissesuumimiseks toimige järgmiselt.</b><br/> {0,number,integer}. Kasutage suurendamise alustamiseks otseteed.<br/> {1,number,integer}. Puudutage ekraani.<br/> {2,number,integer}. Ekraanikuval liikumiseks lohistage ühe või kahe sõrmega.<br/> {3,number,integer}. Suumi kohandamiseks liigutage ekraanil kaht sõrme kokku-lahku.<br/> {4,number,integer}. Kasutage suurenduse peatamiseks otseteed<br/><br/> Saate ka ajutiselt sisse suumida ja muud teha."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kui suurendusfunktsioon on sisse lülitatud, saate oma ekraanikuval sisse suumida.\n\n"<b>"Suumimiseks"</b>" käivitage suurendusfunktsioon ja puudutage siis ekraanikuval mis tahes kohta.\n"<ul><li>"Kerimiseks lohistage kahe või enama sõrmega."</li>\n<li>"Suumi kohandamiseks pigistage kahte või enamat sõrme kokku."</li></ul>\n\n<b>"Ajutiseks suumimiseks"</b>" käivitage suurendusfunktsioon ja puudutage siis ekraanikuval pikalt mis tahes kohta.\n"<ul><li>"Ekraanikuval teisaldamiseks lohistage sõrme."</li>\n<li>"Väljasuumimiseks tõstke sõrm ekraanilt."</li></ul>\n\n"Klaviatuuril ega navigeerimisribal ei saa sisse suumida."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. leht <xliff:g id="NUM_PAGES">%2$d</xliff:g>-st"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Juurdepääsetavuse nupu otsetee"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Mudeli loomine"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Kohandatud"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Katkestuste piiramine"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Valiku Mitte segada sisselülitamine"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmid ja meediahelid saavad katkestada"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Ajakava määramine"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Ajakava"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Lülita automaatselt sisse"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ajastamine"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Telefoni vaigistamine teatud ajal"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Režiimi Mitte segada reeglite määramine"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"ava märguanne"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Luba märguandeid edasi lükata"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Märguandetäpp rakenduse ikoonil"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Mullid"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Mullid"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Kuva see vestlus mullis"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Kõik"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Luba rakendustel alistada"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Rakendused, mis saavad katkestada"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Valige rohkem rakendusi"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Ümbris"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Aku"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Seadete paneel"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Jõusta töölauarežiim"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Katselise töölauarežiimi jõustamine teisestel ekraanidel"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Luba vabas vormis aknad"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Luba vabas vormis akende tugi."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Luba vabas vormis akende kuvamine teisel ekraanil"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Luba vabas vormis aknad ainult teisesel ekraanil."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Luba fikseeritud suurus mitmes aknas"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Lubab fikseeritud suurusega rakenduste kuvamise mitmes aknas"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Alista funktsioon Sunnitud tume"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Arendaja valiku 16 kB kasutamiseks peab seadme andmete sektsioon olema konverditud failisüsteemiks ext4. Selles režiimis ei saa garanteerida tarkvara terviklust ja andmed, mis salvestatakse telefoni, kui käivituslaadur on avatud, võivad olla ohus. Pärast valiku 16 kB aktiveerimist tuleb seade veel korra taaskäivitada. Selles režiimis saate 4 kB ja 16 kB režiimide vahel vahetada ühe taaskäivitamisega. Mõned funktsioonid on nendes režiimides keelatud, mistõttu ei pruugi kõik rakendused töötada Seadme tehaseseadetele lähtestamiseks ja tavarežiimi naasmiseks lülituge uuesti 4K režiimile ja avage seadme käivituslaadur. Pärast seda, kui seade on Androidi käivitanud, keelake arendaja valikutes OEM-tootjaluku avamine. Pärast kinnitamist seade tühjendatakse ja failisüsteemiks seatakse ext4. Kui need toimingud on lõpetatud, lubage taas režiim 16 kB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Kustuta kõik andmed"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Andmete sektsiooni ümbervormindamine failisüsteemiks ext4 ja seadme tühjendamine ebaõnnestus."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Käivituslaadur on vaja avada"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Arendaja valiku 16 kB kasutamiseks peab seadme käivituslaadur olema avatud. Selles režiimis ei saa garanteerida tarkvara terviklust ja andmed, mis salvestatakse telefoni, kui käivituslaadur on avatud, võivad olla ohus. Režiimi 16 kB aktiveerimisel tühjendatakse seade kõigist kasutaja andmetest ja seadetest. Kui käivituslaadur on avatud, on valiku 16 kB aktiveerimiseks vaja seade kaks korda taaskäivitada. Selles režiimis saate 4 kB ja 16 kB režiimide vahel vahetada ühe taaskäivitamisega. Mõned funktsioonid on nendes režiimides keelatud, mistõttu ei pruugi kõik rakendused töötada. Selleks, et viia seade uuesti tavarežiimile, peate lülituma tagasi 4 kB režiimile ja lukustama OEM-i/käivituslaaduri. See lähtestab seadme tehaseseadetele. Avage käivituslaadur ja proovige uuesti. Juhiseid selle kohta vaadake aadressilt <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Lehest sõltumatu 4 kB režiimi kasutamine"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Olete lehest sõltumatus 4 kB režiimis. Selles režiimis ei saa garanteerida tarkvara terviklust ja andmed, mis salvestatakse telefoni, kui käivituslaadur on avatud, võivad olla ohus. Mõned funktsioonid on nendes režiimides keelatud, mistõttu ei pruugi kõik rakendused töötada. Tavarežiimi naasmiseks peate avama seadme käivituslaaduri. Puudutage lisateabe vaatamiseks."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Olete lehest sõltumatus 4 kB režiimis. Selles režiimis ei saa garanteerida tarkvara terviklust ja andmed, mis salvestatakse telefoni, kui käivituslaadur on avatud, võivad olla ohus. Mõned funktsioonid on nendes režiimides keelatud, mistõttu ei pruugi kõik rakendused töötada. Tavarežiimi naasmiseks peate avama seadme käivituslaaduri. See lähtestab seadme tehaseseadetele. Pärast seda, kui seade on Androidi käivitanud, keelake arendaja valikutes OEM-tootjaluku avamine. Kui seadmel ei õnnestu Androidi käivitada või see on ebastabiilne, installige kogu operatsioonisüsteem ja püsivara uuesti, kasutades tehaseoleku süsteemikujutisi aadressilt <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> või kasutage tööriista aadressil <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ja valige „Tühjenda seade“, „Lukusta käivituslaadur“ ja „Installi kõik sektsioonid uuesti“."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Lehest sõltumatu 16 kB režiimi kasutamine"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Olete lehest sõltumatus 16 kB režiimis. Selles režiimis ei saa garanteerida tarkvara terviklust ja andmed, mis salvestatakse telefoni, kui käivituslaadur on avatud, võivad olla ohus. Mõned funktsioonid on nendes režiimides keelatud, mistõttu ei pruugi kõik rakendused töötada. Selleks et viia seade uuesti tavarežiimile, peate lülituma tagasi 4 kB režiimile ja seejärel lukustama seadme käivituslaaduri. Puudutage lisateabe vaatamiseks."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Olete lehest sõltumatus 16 kB režiimis. Selles režiimis ei saa garanteerida tarkvara terviklust ja andmed, mis salvestatakse telefoni, kui käivituslaadur on avatud, võivad olla ohus. Mõned funktsioonid on nendes režiimides keelatud, mistõttu ei pruugi kõik rakendused töötada. Selleks et viia seade uuesti tavarežiimile, peate lülituma tagasi 4 kB režiimile ja seejärel lukustama seadme käivituslaaduri. Selle toiminguga lähtestatakse seade jälle tehaseseadetele ja taastatakse tavarežiimi seaded. Pärast seda, kui seade on Androidi käivitanud, keelake arendaja valikutes OEM-tootjaluku avamine. Kui seadmel ei õnnestu Androidi käivitada või see on ebastabiilne, uuendage kogu püsivara uuesti, kasutades tehaseoleku süsteemikujutisi aadressilt <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>, ning tehke valikud „Tühjenda seade“, „Lukusta käivituslaadur“ ja „Sunduuenda kõiki sektsioone“."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Lehest sõltumatu 16 kB režiim"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Lisateave"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Veaaruannete töötleja"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Valige, mida oma ekraanikuval näete, kui teie tahvelarvuti on dokitud. Kui kasutate ekraanisäästjat, võib teie seade rohkem energiat tarbida."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Kohanda"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Kohanda ekraanisäästjat <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Vabas vormis toe jaoks on vaja taaskäivitada."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Töölauarežiimi teisestele ekraanidele sundimiseks on vaja taaskäivitada."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Pärand vabas vormis akende kuvamise lubamiseks on vajalik taaskäivitamine."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Vabas vormis akende kuvamise toe muutmiseks on vajalik taaskäivitamine."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Teisestel ekraanidel vabas vormis akende kuvamise sundimiseks on vajalik taaskäivitamine."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Taaskäivita kohe"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Taaskäivita hiljem"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Ruumiline heli"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index cdf6185..75bb2e8 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Beharrezkoa da identitate-egiaztapena aktibatuta dagoelako"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Instalatu aplikazioak"</b>\n"Instalatu zure eremuan eduki nahi dituzun aplikazio pribatuak"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Gogoratu"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Aplikazioak gelditu egiten dira eremua blokeatzen duzunean"</b>\n"Eremua blokeatzen duzunean, bertan dauzkazun aplikazioak gelditu egiten dira, eta haien jakinarazpenak jasotzeari uzten diozu"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Eremu pribatuak ez dira egokiak atzeko planoan exekutatu behar diren edo funtsezko jakinarazpenak bidali behar dituzten aplikazioetarako (adibidez, medikuntza-aplikazioak). Izan ere, jakinarazpenak eta atzeko planoko jarduerak gelditu egiten dira eremua blokeatuta dagoenean.\n\nZure eremu pribatuko aplikazioak ez dira agertuko baimenen kudeatzailean, pribatutasun-panelean eta beste ezarpenetan eremu pribatua blokeatuta dagoenean.\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_settings_footer_text" msgid="3742468470394835356">"Eremu pribatuak ez dira egokiak atzeko planoan exekutatu behar diren edo funtsezko jakinarazpenak bidali behar dituzten aplikazioetarako (adibidez, medikuntza-aplikazioak). Izan ere, jakinarazpenak eta atzeko planoko jarduerak gelditu egiten dira eremua blokeatuta dagoenean.\n\nZure eremu pribatuko aplikazioak ez dira agertuko baimenen kudeatzailean, pribatutasun-panelean eta beste ezarpenetan eremu pribatua blokeatuta dagoenean.\n\nEremu pribatua ezin da leheneratu beste gailu batean. Eremua beste gailu batean erabili nahi baduzu, beste bat konfiguratu beharko duzu.\n\nBaliteke zure gailua ordenagailu batekin konektatzen duten edo gailuan asmo txarreko aplikazioak instalatzen dituzten guztiek zure eremu pribatua atzitu ahal izatea."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Eremu pribatuak ez dira egokiak atzeko planoan exekutatu behar diren edo jakinarazpen larriak bidali behar dituzten aplikazioetarako (adibidez, medikuntza-aplikazioak). Izan ere, jakinarazpenak eta atzeko planoko jarduerak gelditu egiten dira eremua blokeatuta dagoenean.\n\nZure eremu pribatuko aplikazioak ez dira agertuko baimenen kudeatzailean, pribatutasun-panelean eta beste ezarpenetan eremu pribatua blokeatuta dagoenean.\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_settings_footer_text" msgid="3742468470394835356">"Eremu pribatuak ez dira egokiak atzeko planoan exekutatu behar diren edo jakinarazpen larriak bidali behar dituzten aplikazioetarako (adibidez, medikuntza-aplikazioak). Izan ere, jakinarazpenak eta atzeko planoko jarduerak gelditu egiten dira eremua blokeatuta dagoenean.\n\nZure eremu pribatuko aplikazioak ez dira agertuko baimenen kudeatzailean, pribatutasun-panelean eta beste ezarpenetan eremu pribatua blokeatuta dagoenean.\n\nEremu pribatua ezin da leheneratu beste gailu batean. Eremua beste gailu batean erabili nahi baduzu, beste bat konfiguratu beharko duzu.\n\nBaliteke zure gailua ordenagailu batekin konektatzen duten edo gailuan asmo txarreko aplikazioak instalatzen dituzten guztiek zure eremu pribatua atzitu ahal izatea."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Lortu eremu pribatuari buruzko informazio gehiago"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Une bat beharko da"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"Eremu pribatua konfiguratzen…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Aukerak"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Erabilerraztasuna"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Teklatu fisikoa"</string>
- <string name="show_ime" msgid="4334255501724746849">"Erabili pantailako teklatua"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Erakutsi pantailan teklatu fisikoa aktibo dagoen bitartean"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Errebote-teklak"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Teklatuak ez ikusi egiten dio tekla bera <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms igaro baino lehen behin eta berriro sakatzen bada"</string>
<string name="slow_keys" msgid="2891452895499690837">"Tekla motelak"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Egin aurrera, halere"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Utzi"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Luparen ezarpenak"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mugitu lupa hatz batekin"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arrastatu hatz 1 pantailatik mugitzeko."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mugitu luparen eremua hatz bat arrastatuta."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mugitu luparen eremua bi hatz arrastatuta."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ez dago erabilgarri pantailaren zati bat soilik handitzean"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Zooma aplikatzeko, sakatu botoi bat"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Handitu pantaila bizkor edukia hobeto ikusteko"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Pantaila handitzeko:</b><br/> {0,number,integer}. Erabili lupa aktibatzeko lasterbidea.<br/> {1,number,integer}. Sakatu pantaila.<br/> {2,number,integer}. Arrastatu bi hatz pantailan zehar mugitzeko.<br/> {3,number,integer}. Atximurkatu pantaila bi hatz erabilita zooma doitzeko.<br/> {4,number,integer}. Erabili lupa desaktibatzeko lasterbidea.<br/><br/> <b>Pantaila une batez handitzeko:</b><br/> {0,number,integer}. Ziurtatu lupa mota pantaila oso gisa ezarrita dagoela.<br/> {1,number,integer}. Erabili lupa aktibatzeko lasterbidea.<br/> {2,number,integer}. Eduki sakatuta pantailako edozein puntu.<br/> {3,number,integer}. Arrastatu hatz bat pantailan zehar mugitzeko.<br/> {4,number,integer}. Jaso hatza lupa desaktibatzeko."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Pantaila handitzeko:</b><br/> {0,number,integer}. Erabili lupa aktibatzeko lasterbidea.<br/> {1,number,integer}. Sakatu pantaila.<br/> {2,number,integer}. Arrastatu 2 hatz pantailan zehar mugitzeko.<br/> {3,number,integer}. Atximurkatu 2 hatz zooma doitzeko.<br/> {4,number,integer}. Erabili lasterbidea luparen eginbidea gelditzeko.<br/><br/> Gainera, aldi baterako handi dezakezu, besteak beste."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Pantaila handitzeko:</b><br/> {0,number,integer}. Erabili lupa aktibatzeko lasterbidea.<br/> {1,number,integer}. Sakatu pantaila.<br/> {2,number,integer}. Arrastatu 1 edo 2 hatz pantailan barna mugitzeko.<br/> {3,number,integer}. Atximurkatu 2 hatz zooma doitzeko.<br/> {4,number,integer}. Erabili lasterbidea luparen eginbidea gelditzeko.<br/><br/> Gainera, aldi baterako handi dezakezu, besteak beste."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Zooma aktibatuta badago, pantailan aplika dezakezu.\n\n"<b>"Handitzeko"</b>", ireki zooma eta sakatu pantailako edozein puntu.\n"<ul><li>"Arrastatu bi hatz edo gehiago gora eta behera egiteko."</li>\n<li>"Atximurkatu pantaila bi hatz edo gehiago erabilita zooma doitzeko."</li></ul>\n\n<b>"Zooma unetxo batez aplikatzeko"</b>", ireki zooma eta eduki sakatuta pantailako edozein puntu.\n"<ul><li>"Arrastatu hatza toki batetik bestera joateko."</li>\n<li>"Altxatu hatza txikitzeko."</li></ul>\n\n"Ezin da aplikatu zooma teklatuan edo nabigazio-barran."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g> orria"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Erabilerraztasuna botoiaren lasterbidea"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Sortu modu bat"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Pertsonalizatua"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Mugatu etenaldiak"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Aktibatu ez molestatzeko modua"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmek eta multimedia-soinuek eten dezakete"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Ezarri programazio bat"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programazioa"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h eta <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Aktibatu automatikoki"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programazioa"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Isilarazi telefonoa ordu jakinetan"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Ezarri ez molestatzeko moduaren arauak"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"jakinarazpena ireki"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Eman jakinarazpenak atzeratzeko baimena"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Jakinarazpen-biribiltxoa aplikazioaren ikonoan"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Jakinarazpen multzoak"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Burbuilak"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbuilak"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bistaratu elkarrizketa hau burbuila gisa"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Guztiak"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Eman \"Ez molestatu\" ez aplikatzeko baimena aplikazioei"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Eten zaitzaketen aplikazioak"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Hautatu aplikazio gehiago"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Kutxa"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Ezarpenen panela"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Behartu ordenagailuetarako modua erabiltzera"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Behartu ordenagailuetarako modu esperimentala erabiltzera bigarren mailako pantailetan"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Gaitu estilo libreko leihoak"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Onartu estilo libreko leihoak."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Gaitu estilo libreko leihoak bigarren pantailan"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Gaitu estilo libreko leihoak bigarren mailako pantailan soilik."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Gaitu tamaina aldagarria ez duten aplikazioak leiho bat baino gehiagoko moduan"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Tamaina aldagarria ez duten aplikazioak leiho bat baino gehiagoko moduan izateko aukera ematen du"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Ez aplikatu gai iluna"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Gailu honen datuen partizioa ext4-ra bihurtu behar da 16 kB-ko garatzaileentzako aukera erabili baino lehen. Modu horretan ezin da bermatu softwarearen osotasuna, eta baliteke telefonoan gordetako datuak arriskuan egotea sistema eragilearen abiarazlea desblokeatuta dagoen bitartean. 16 kB-ko aukera aktibatzeko, berriro berrabiarazi beharko da berrabiarazte honen ondoren. Modu horretan zaudenean, 4 kB-ko eta 16 kB-ko moduen artean aldatu ahal izango duzu behin soilik berrabiarazita. Modu horietan, eginbide batzuk desgaituko dira; beraz, baliteke aplikazio batzuek ez funtzionatzea. Gailua jatorrizko modura itzultzeko, aldatu berriro 4 kB-ko modura eta blokeatu sistema eragilearen abiarazlea. Gailuaren jatorrizko datuak berrezarriko dira. Gailuak Android behar bezala abiarazten duenean, desgaitu OEMa desblokeatzeko aukera Garatzaileentzako aukerak atalean. Berretsi ondoren, gailua xahutuko da eta fitxategi-sistema ext4-ra aldatuko da. Prozesu hori osatu ondoren, itzuli hona 16 kB-ko modua berriro gaitzeko."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Ezabatu datu guztiak"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Ezin izan da formateatu eta xahutu datu-partizioa ext4-ra."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Sistema eragilearen abiarazlea desblokeatu behar da"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16 kB-ko garatzaileentzako aukera erabili baino lehen, gailuaren sistema eragilearen abiarazlea desblokeatu behar da. Modu horretan ezin da bermatu softwarearen osotasuna, eta baliteke telefonoan gordetako datuak arriskuan egotea sistema eragilearen abiarazlea desblokeatuta dagoen bitartean. 16 kB-ko modua aktibatzean, erabiltzaile-datu eta -ezarpen guztiak xahutuko dira. Sistema eragilearen abiarazlea desblokeatu ondoren, gailua 2 aldiz berrabiarazi beharko da 16 kB-ko moduaren aukera aktibatzeko. Modu horretan zaudenean, 4 kB-ko eta 16 kB-ko moduen artean aldatu ahal izango duzu behin soilik berrabiarazita. Modu horietan, eginbide batzuk desgaituko dira; beraz, baliteke aplikazio batzuek ez funtzionatzea. Gailua jatorrizko modura itzultzeko, aldatu berriro 4 kB-ko modura eta blokeatu gailuaren sistema eragilearen abiarazlea edo OEMa. Gailuaren jatorrizko datuak berrezarriko dira. Desblokeatu sistema eragilearen abiarazlea eta saiatu berriro. Hori egiteko argibideak jasotzeko, joan <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> helbidera."</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Orri-tamaina guztiekin bateragarria den 4 kB-ko modua erabiltzen"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Orri-tamaina guztiekin bateragarria den moduko 4 kB-ko moduan zaude. Modu horretan ezin da bermatu softwarearen osotasuna, eta baliteke telefonoan gordetako datuak arriskuan egotea sistema eragilearen abiarazlea desblokeatuta dagoen bitartean. Modu horietan, eginbide batzuk desgaituko dira; beraz, baliteke aplikazio batzuek ez funtzionatzea. Jatorrizko modura itzultzeko, blokeatu gailuaren sistema eragilearen abiarazlea. Informazio gehiago irakurtzeko, sakatu hau."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Orri-tamaina guztiekin bateragarria den moduko 4 kB-ko moduan zaude. Modu horretan ezin da bermatu softwarearen osotasuna, eta baliteke telefonoan gordetako datuak arriskuan egotea sistema eragilearen abiarazlea desblokeatuta dagoen bitartean. Modu horietan, eginbide batzuk desgaituko dira; beraz, baliteke aplikazio batzuek ez funtzionatzea. Jatorrizko modura itzultzeko, blokeatu gailuaren sistema eragilearen abiarazlea. Gailuaren jatorrizko datuak berrezarriko dira, eta jatorrizko ezarpenetara leheneratuko. Gailuak Android behar bezala abiarazten duenean, desgaitu OEMa desblokeatzeko aukera Garatzaileentzako aukerak atalean. Gailuak Android abiarazi ezin badu edo ezegonkorra bada, instala itzazu fabrikako firmwarearen azken irudiak (<a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> helbidetik) gailuan. Bestela, erabili <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> eta hautatu \"Wipe Device\" (xahutu gailua), \"Lock Bootloader\" (blokeatu sistema eragilearen abiarazlea) eta \"Force Flash all partitions\" (behartu partizio guztiak berriro instalatzera)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Orri-tamaina guztiekin bateragarria den 16 kB-ko modua erabiltzen"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Orri guztiekin bateragarria den moduko 16 kB-ko moduan zaude. Modu horretan ezin da bermatu softwarearen osotasuna, eta baliteke telefonoan gordetako datuak arriskuan egotea sistema eragilearen abiarazlea desblokeatuta dagoen bitartean. Modu horietan, eginbide batzuk desgaituko dira; beraz, baliteke aplikazio batzuek ez funtzionatzea. Jatorrizko modura itzultzeko, aldatu berriro 4 kB-ko modura eta blokeatu gailuaren sistema eragilearen abiarazlea. Informazio gehiago irakurtzeko, sakatu hau."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Orri guztiekin bateragarria den moduko 16 kB-ko moduan zaude. Modu horretan ezin da bermatu softwarearen osotasuna, eta baliteke telefonoan gordetako datuak arriskuan egotea sistema eragilearen abiarazlea desblokeatuta dagoen bitartean. Modu horietan, eginbide batzuk desgaituko dira; beraz, baliteke aplikazio batzuek ez funtzionatzea. Jatorrizko modura itzultzeko, aldatu berriro 4 kB-ko modura eta blokeatu gailuaren sistema eragilearen abiarazlea. Gailuaren jatorrizko datuak berrezarriko dira, eta jatorrizko ezarpenetara leheneratuko. Gailuak Android behar bezala abiarazten duenean, desgaitu OEMa desblokeatzeko aukera Garatzaileentzako aukerak atalean. Gailuak Android abiarazi ezin badu edo ezegonkorra bada, instala itzazu fabrikako firmwarearen azken irudiak (<a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> helbidetik) gailuan. Bestela, erabili <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> eta hautatu \"Wipe Device\" (xahutu gailua), \"Lock Bootloader\" (blokeatu sistema eragilearen abiarazlea) eta \"Force Flash all partitions\" (behartu partizio guztiak berriro instalatzera)."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Orri-tamaina guztiekin bateragarria den 16 kB-ko modua"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Irakurri informazio gehiago"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Akatsen txostenen kudeatzailea"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Aukeratu zer ikusiko den pantailan tableta oinarrian dagoenean. Baliteke gailuak energia gehiago erabiltzea pantaila-babeslea erabiltzen denean."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Pertsonalizatu"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Pertsonalizatu <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Estilo librerako bateragarritasuna gaitzeko, gailua berrabiarazi egin behar da."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Mahaigaineko modua bigarren mailako pantailetan erabiltzera behartzeko, gailua berrabiarazi egin behar da."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Aurreko bertsioko estilo libreko leihoak onartu ahal izateko, gailua berrabiarazi egin behar da."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Estilo libreko leihoak onartzeko aukera aldatzeko, gailua berrabiarazi egin behar da."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Bigarren mailako pantailetan estilo libreko leihoak onartzera behartzeko, gailua berrabiarazi egin behar da."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Berrabiarazi"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Berrabiarazi geroago"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio espaziala"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 67e13ea..dcf898e 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"چهره و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"چهره، اثر انگشت، و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"چهره، اثر انگشت، و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"این مورد الزامی است چون «بررسی هویت» روشن است"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"گزینهها"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"دسترسپذیری"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"صفحهکلید فیزیکی"</string>
- <string name="show_ime" msgid="4334255501724746849">"استفاده از صفحهکلید مجازی"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"وقتی صفحهکلید فیزیکی فعال است این ویرایشگر را روی صفحه نگهمیدارد"</string>
<string name="bounce_keys" msgid="7419450970351743904">"کلیدهای واگشت"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"صفحهکلید فشردنهای تکراری و سریع یک کلید در <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> میلیثانیه را نادیده میگیرد"</string>
<string name="slow_keys" msgid="2891452895499690837">"کلیدهای آهسته"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"ایجاد حالت"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"سفارشی"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"محدود کردن وقفهها"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"روشن کردن «مزاحم نشوید»"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"صداهای رسانه و هشدارها میتوانند وقفه ایجاد کنند"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"تنظیم زمانبندی"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"زمانبندی"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ساعت، <xliff:g id="MINUTES">%2$d</xliff:g> دقیقه"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"روشن شدن خودکار"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"زمانبندی"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"بیصدا کردن تلفن در زمانهای خاصی"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"تنظیم قانونهای «مزاحم نشوید»"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"باز کردن اعلان"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"مجاز کردن تعویق اعلان"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"نقطه اعلان روی نماد برنامهها"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"دستههای اعلان"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"حبابکها"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"حبابکها"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"نمایش مکالمه بهصورت حباب"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"همه"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"مجاز کردن برنامهها برای لغو"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"برنامههایی که میتوانند وقفه ایجاد کنند"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"انتخاب برنامههای بیشتر"</string>
@@ -4349,7 +4352,7 @@
<string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"برای رفتن به صفحه اصلی، از پایین صفحه تند بهبالا بکشید. برای جابهجایی بین برنامهها، از پایین صفحه تند بهبالا بکشید، نگه دارید، سپس رها کنید. برای برگشتن، از لبه راست یا چپ تند بکشید."</string>
<string name="legacy_navigation_title" msgid="7877402855994423727">"پیمایش ۳ دکمهای"</string>
<string name="legacy_navigation_summary" msgid="5905301067778326433">"برگشت، صفحه اصلی، و جابهجایی بین برنامهها با دکمههای پایین صفحه."</string>
- <string name="nav_tutorial_button_description" msgid="6880450051535137024">"شروع آموزش گامبهگام پیمایش اشارهای، دکمه. برای فعال کردن، دوضربه بزنید."</string>
+ <string name="nav_tutorial_button_description" msgid="6880450051535137024">"شروع آموزش گامبهگام پیمایش اشارهای، دکمه. برای فعال کردن، دو تکضرب بزنید."</string>
<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>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"جلد محاف"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"باتری"</string>
<string name="settings_panel_title" msgid="346363079938069215">"پانل تنظیمات"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"اجرای اجباری حالت دسکتاپ"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"اجرای اجباری حالت دسکتاپ آزمایشی در نمایشگرهای ثانوی"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"فعال کردن پنجرههای با قالب آزاد"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"پشتیبانی از پنجرههای با قالب آزاد فعال میشود."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"فعال کردن پنجرههای با قالب آزاد در نمایشگر دوم"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"پنجرههای با قالب آزاد فقط در نمایشگر دوم فعال میشود."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"فعال کردن اندازه غیرقابلتغییر در چندپنجره"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"مجاز کردن برنامههای با اندازه غیرقابلتغییر برای قرارگیری در چندپنجره"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"لغو اجبار حالت تاریک"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"پیشاز استفاده از گزینه توسعهدهنده ۱۶ کیلوبایتی، پارتیشن دادههای این دستگاه باید به ext4 تبدیل شود. در این حالت تمامیت نرمافزار را نمیتوان تضمین کرد و هرگونه دادهای که درمدت باز بودن قفل bootloader در تلفن ذخیره میشود میتواند در معرض خطر باشد. فعال کردن گزینه ۱۶ کیلوبایتی به بازراهاندازی دیگری بعداز این بازراهاندازی نیاز خواهد داشت. بعداز رفتن به این حالت، میتوانید با یک بار بازراهاندازی بین حالتهای ۴ کیلوبایتی و ۱۶ کیلوبایتی جابجا شوید. برخیاز ویژگیها در این حالتها غیرفعال میشوند بنابراین ممکن است بعضیاز برنامهها کار نکنند. برای برگرداندن دستگاه به حالت تولید، باید به حالت ۴ کیلوبایتی برگردید و سپس bootloader را قفل کنید که با این کار، دستگاه بازنشانی کارخانهای میشود. پساز آنکه دستگاه باموفقیت با سیستمعامل Android راهاندازی شد، «باز کردن قفل سازنده اصلی محصول» را در «گزینههای توسعهدهندگان» غیرفعال کنید. دادههای دستگاه محو میشود و سیستم فایل به ext4 تغییر میکند. بعداز تکمیل کار، لطفاً به اینجا برگردید تا دوباره حالت ۱۶ کیلوبایتی را فعال کنید."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"پاک کردن همه دادهها"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"محو کردن داده و قالببندی مجدد پارتیشن داده به ext4 انجام نشد."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"قفل Bootloader باید باز شود"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"پیشاز استفاده از گزینه توسعهدهنده ۱۶ کیلوبایتی، قفل bootloader باید در این دستگاه باز شود. نمیتوان تمامیت نرمافزار را در این حالت تضمین کرد و هرگونه دادهای که درمدت باز بودن قفل bootloader در تلفن ذخیره میشود میتواند در معرض خطر باشد. با فعال کردن حالت ۱۶ کیلوبایتی، همه تنظیمات و دادههای کاربر محو خواهند شد. بعداز باز کردن قفل bootloader، گزینه ۱۶ کیلوبایتی به انجام دو بازراهاندازی نیاز دارد. بعداز رفتن به این حالت، میتوانید با یک بار بازراهاندازی بین حالتهای ۴ کیلوبایتی و ۱۶ کیلوبایتی جابجا شوید. برخیاز ویژگیها در این حالتها غیرفعال میشوند بنابراین ممکن است بعضیاز برنامهها کار نکنند. برای برگرداندن دستگاه به حالت تولید، باید به حالت ۴ کیلوبایتی برگردید و سپس سازنده اصلی محصول/ bootloader دستگاه را قفل کنید (که با این کار، دستگاه بازنشانی کارخانهای میشود). لطفاً قفل bootloader را باز و دوباره امتحان کنید. میتوانید دستورالعملهای نحوه انجام این کار را از اینجا دریافت کنید: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"درحال استفاده از حالت مستقل با صفحه ۴ کیلوبایتی"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"در حالت ۴ کیلوبایتی حالت مستقل از صفحه هستید. در این حالت، تمامیت نرمافزار را نمیتوان تضمین کرد و هرگونه دادهای که درمدت باز بودن قفل bootloader در تلفن ذخیره میشود میتواند در معرض خطر باشد. برخیاز ویژگیها در این حالتها غیرفعال میشوند بنابراین ممکن است بعضیاز برنامهها کار نکنند. برای ورود دوباره به حالت تولید، باید bootloader دستگاه را قفل کنید. برای مطالعه بیشتر، تکضرب بزنید."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"در حالت ۴ کیلوبایتی حالت مستقل از صفحه هستید. در این حالت تمامیت نرمافزار را نمیتوان تضمین کرد و هرگونه دادهای که درمدت باز بودن قفل bootloader در تلفن ذخیره میشود میتواند در معرض خطر باشد. برخیاز ویژگیها در این حالتها غیرفعال میشوند بنابراین ممکن است بعضیاز برنامهها کار نکنند. برای ورود دوباره به حالت تولید، باید bootloader دستگاه را قفل کنید. با این کار، دستگاه دوباره بازنشانی کارخانهای میشود و به تنظیمات تولید بازگردانده میشود. پساز آنکه دستگاه باموفقیت با سیستمعامل Android راهاندازی شد، «باز کردن قفل سازنده اصلی محصول» را در «گزینههای توسعهدهندگان» غیرفعال کنید. اگر دستگاه نتوانست باموفقیت با سیستمعامل Android راهاندازی شود یا ناپایدار بود، دستگاه را با جدیدترین تصویر تنظیمات کارخانه از <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> دوباره فلاش کنید و «محو کردن دادههای دستگاه»، «قفل کردن bootloader»، و «فلاش کردن اجباری همه پارتیشنها» را انتخاب کنید."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"درحال استفاده از حالت مستقل از صفحه ۱۶ کیلوبایتی"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"در حالت ۱۶ کیلوبایتی حالت مستقل از صفحه هستید. نمیتوان تمامیت نرمافزار را در این حالت تضمین کرد و هرگونه دادهای که درمدت باز بودن قفل bootloader در تلفن ذخیره میشود میتواند درمعرض خطر باشد. برخیاز ویژگیها در این حالتها غیرفعال میشوند بنابراین ممکن است بعضیاز برنامهها کار نکنند. برای ورود دوباره به حالت تولید، باید به حالت ۴ کیلوبایتی برگردید و سپس bootloader دستگاه را قفل کنید. برای مطالعه بیشتر، تکضرب بزنید."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"در حالت ۱۶ کیلوبایتی حالت مستقل از صفحه هستید. نمیتوان تمامیت نرمافزار را در این حالت تضمین کرد و هرگونه دادهای که درمدت باز بودن قفل bootloader در تلفن ذخیره میشود میتواند درمعرض خطر باشد. برخیاز ویژگیها در این حالتها غیرفعال میشوند بنابراین ممکن است بعضیاز برنامهها کار نکنند. برای ورود دوباره به حالت تولید، باید به حالت ۴ کیلوبایتی برگردید و سپس bootloader دستگاه را قفل کنید. با این کار، دستگاه دوباره بازنشانی کارخانهای میشود و به تنظیمات تولید بازگردانده میشود. پساز آنکه دستگاه باموفقیت با سیستمعامل Android راهاندازی شد، «باز کردن قفل سازنده اصلی محصول» را در «گزینههای توسعهدهندگان» غیرفعال کنید. اگر دستگاه نتوانست باموفقیت با سیستمعامل Android راهاندازی شود یا ناپایدار بود، دستگاه را با جدیدترین تصویر تنظیمات کارخانه از <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> دوباره فلاش کنید و «محو کردن دادههای دستگاه»، «قفل کردن Bootloader»، و «فلاش کردن اجباری همه پارتیشنها» را انتخاب کنید."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"حالت مستقل از صفحه ۱۶ کیلوبایتی"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"بیشتر بخوانید"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"کنترلکننده گزارش اشکال"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"انتخاب کنید وقتی رایانه لوحی روی پایه قرار میگیرد چه چیزی روی صفحهنمایش نشان داده شود. هنگام استفاده از محافظ صفحه، دستگاه ممکن است انرژی بیشتری مصرف کند."</string>
<string name="customize_button_title" msgid="1110284655990203359">"سفارشی کردن"</string>
<string name="customize_button_description" msgid="7440248477266126231">"سفارشی کردن <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"برای فعال کردن پشتیبانی قالب آزاد، راهاندازی مجدد الزامی است."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"برای رفتن به حالت میز کار در نمایشگرهای ثانویه، بازراهاندازی الزامی است."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"برای فعال کردن پشتیبانی از پنجرههای با قالب آزاد قدیمی، به بازراهاندازی نیاز است."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"برای تغییر دادن پشتیبانی از پنجرههای با قالب آزاد، به بازراهاندازی نیاز است."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"برای اجباری کردن پنجرههای با قالب آزاد در نمایشگرهای دوم، به بازراهاندازی نیاز است."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"اکنون بازراهاندازی شود"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"بعداً بازراهاندازی شود"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"صدای فضایی"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 0a81ba1..4b4c2f6 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Tätä tarvitaan, koska henkilöllisyyden tunnistaminen on päällä"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Asenna sovelluksia"</b>\n"Asenna sovelluksia, jotka haluat pitää yksityisessä tilassa"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Muistettavaa"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Sovellukset pysäytetään, kun lukitset tilan"</b>\n"Kun lukitset tilan, siinä olevat sovellukset pysäytetään etkä saa niiltä ilmoituksia"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Yksityisiä tiloja ei voi käyttää sellaisten sovellusten kanssa, joiden täytyy olla käynnissä taustalla tai lähettää tärkeitä ilmoituksia (esim. lääketieteelliset sovellukset). Tämä johtuu siitä, että ilmoitukset ja taustatoiminta keskeytetään, kun tila on lukittu.\n\nYksityisessä tilassa olevat sovellukset eivät näy Lupienhallinnassa, yksityisyydenhallintapaneelissa tai muissa asetuksissa, kun yksityinen tila on lukittu.\n\nYksityistä tilaa ei voi siirtää uudelle laitteelle. 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_settings_footer_text" msgid="3742468470394835356">"Yksityisiä tiloja ei voi käyttää sellaisten sovellusten kanssa, joiden täytyy olla käynnissä taustalla tai lähettää tärkeitä ilmoituksia (esim. lääketieteelliset sovellukset). Tämä johtuu siitä, että ilmoitukset ja taustatoiminta keskeytetään, kun tila on lukittu.\n\nYksityisessä tilassa olevat sovellukset eivät näy Lupienhallinnassa, yksityisyydenhallintapaneelissa tai muissa asetuksissa, kun yksityinen tila on lukittu.\n\nYksityistä tilaa ei voi palauttaa uudella laitteella. 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_apps_permission_text" msgid="4416201648436201393">"Yksityisiä tiloja ei voi käyttää sellaisten sovellusten kanssa, joiden täytyy olla käynnissä taustalla tai lähettää tärkeitä ilmoituksia (esim. lääketieteelliset sovellukset). Tämä johtuu siitä, että ilmoitukset ja taustatoiminta keskeytetään, kun tila on lukittu.\n\nYksityisessä tilassa olevat sovellukset eivät näy lupienhallinnassa, yksityisyydenhallintapaneelissa tai muissa asetuksissa, kun yksityinen tila on lukittu.\n\nYksityistä tilaa ei voi siirtää uudelle laitteelle. 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_settings_footer_text" msgid="3742468470394835356">"Yksityisiä tiloja ei voi käyttää sellaisten sovellusten kanssa, joiden täytyy olla käynnissä taustalla tai lähettää tärkeitä ilmoituksia (esim. lääketieteelliset sovellukset). Tämä johtuu siitä, että ilmoitukset ja taustatoiminta keskeytetään, kun tila on lukittu.\n\nYksityisessä tilassa olevat sovellukset eivät näy lupienhallinnassa, yksityisyydenhallintapaneelissa tai muissa asetuksissa, kun yksityinen tila on lukittu.\n\nYksityistä tilaa ei voi palauttaa uudella laitteella. 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_learn_more_text" msgid="5314198983263277586">"Lue lisää yksityisestä tilasta"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Tässä menee hetki"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"Yksityistä tilaa otetaan käyttöön…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Vaihtoehdot"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Saavutettavuus"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fyysinen näppäimistö"</string>
- <string name="show_ime" msgid="4334255501724746849">"Käytä näyttönäppäimistöä"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Pidä näytöllä, kun fyysinen näppäimistö on aktiivinen"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Toistuvien painallusten ohitus"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Näppäimistö ei huomioi <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> millisekunnin sisällä toistettuja saman näppäimen painalluksia"</string>
<string name="slow_keys" msgid="2891452895499690837">"Hitaat näppäimet"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Jatka silti"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Peru"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Suurennusasetukset"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Siirrä suurennusta yhdellä sormella"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Siirry näytöllä vetämällä yhtä sormea"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Siirrä suurennusaluetta vetämällä yhdellä sormella."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Siirrää suurennusaluetta vetämällä kahdella sormella."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ei käytettävissä, kun vain osaa näytöstä suurennetaan"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Zoomaa napauttamalla painiketta."</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Lähennä näyttöä nopeasti, niin näet sisällön suurempana"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Näin voit lähentää näyttöä:</b><br/> {0,number,integer}. Aloita suurennus käyttämällä pikanäppäintä<br/> {1,number,integer}. Napauta näyttöä<br/> {2,number,integer}. Siirry näytöllä vetämällä kahdella sormella<br/> {3,number,integer}. Säädä zoomausta nipistämällä kahdella sormella<br/> {4,number,integer}. Lopeta suurennus käyttämällä pikanäppäintä<br/><br/><b>Väliaikainen lähentäminen:</b><br/> {0,number,integer}. Varmista, että suurennustapa on asetettu koko näytölle <br/> {1,number,integer}. Aloita suurennus käyttämällä pikanäppäintä<br/> {2,number,integer}. Kosketa näyttöä mistä tahansa pitkään<br/> {3,number,integer}. Siirry näytöllä vetämällä kahdella sormella<br/> {4,number,integer}. Lopeta suurennus nostamalla sormi näytöltä"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Näin voit lähentää näyttöä:</b><br/> {0,number,integer}. Aloita suurennus käyttämällä pikakomentoa<br/> {1,number,integer}. Napauta näyttöä<br/> {2,number,integer}. Siirry näytöllä vetämällä kahdella sormella<br/> {3,number,integer}. Säädä zoomausta nipistämällä kahdella sormella<br/> {4,number,integer}. Lopeta suurennus käyttämällä pikakomentoa<br/><br/> Voit myös esimerkiksi lähentää tilapäisesti."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Näin voit lähentää näyttöä:</b><br/> {0,number,integer}. Aloita suurennus käyttämällä pikakomentoa<br/> {1,number,integer}. Napauta näyttöä<br/> {2,number,integer}. Siirry näytöllä vetämällä yhdellä tai kahdella sormella<br/> {3,number,integer}. Säädä zoomausta nipistämällä kahdella sormella<br/> {4,number,integer}. Lopeta suurennus käyttämällä pikakomentoa<br/><br/> Voit myös esimerkiksi lähentää tilapäisesti."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kun suurennus on käytössä, voit suurentaa näytöllä olevia kohteita.\n\n"<b>"Zoomaa:"</b>" käynnistä suurennus ja napauta sitten haluamaasi kohtaa näytöllä\n"<ul><li>"Vieritä: vedä vähintään kahta sormea näytön poikki"</li>\n<li>"Säädä zoomausta: nipistä vähintään kaksi sormea yhteen tai levitä ne erilleen"</li></ul>\n\n<b>"Zoomaa väliaikaisesti:"</b>" käynnistä suurennus ja paina pitkään missä tahansa näytöllä\n"<ul><li>"Liiku näytöllä: vedä sormea eri suuntiin"</li>\n<li>"Loitonna: nosta sormi"</li></ul>\n\n"Suurennus ei toimi näppäimistöllä tai siirtymispalkissa."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Sivu <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Saavutettavuuspainikkeen pikakomento"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Tilan luominen"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Oma"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Keskeytysten rajoittaminen"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Laita Älä häiritse ‑tila päälle"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Hälytykset ja median äänet voivat keskeyttää"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Luo aikataulu"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Aikataulu"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Ota käyttöön automaattisesti"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Aikataulu"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Hiljennä puhelin tiettyinä aikoina"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Määritä Älä häiritse ‑säännöt"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"avaa ilmoitus"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Salli ilmoitusten torkuttaminen"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Sovelluskuvakkeen pistemerkki"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Ilmoitusniput"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Kuplat"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Kuplat"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Lisää tämä keskustelu kuplaksi"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Kaikki"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Salli ohittaminen sovelluksille"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Sovellukset, jotka saavat keskeyttää"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Valitse lisää sovelluksia"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Kotelo"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akku"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Asetuspaneeli"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Pakota työpöytätila"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Pakota kokeellinen työpöytätila toissijaisille näytöille"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Ota vapaamuotoiset ikkunat käyttöön"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Ota käyttöön tuki vapaamuotoisille ikkunoille."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Ota 2. näytön vapaamuotoinen ikkunointi käyttöön"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Ota vapaamuotoiset ikkunat käyttöön vain toissijaisella näytöllä."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ota käyttöön kiinteän kokoiset usean ikkunan tilassa"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Sallii kiinteän kokoiset sovellukset usean ikkunan tilassa"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Ohita SmartDarkin pakottaminen päälle"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Tämän laitteen dataosio on muunnettava ext4-muotoon ennen 16 kt:n kehittäjäasetuksen käyttämistä. Ohjelmiston eheyttä ei voida taata tässä tilassa. Kaikki tälle puhelimelle tallennettu data voi olla vaarassa, kun käynnistysohjelman lukitus on auki. 16 kt:n tilan aktivoiminen edellyttää tämän jälkeen vielä yhtä uudelleenkäynnistystä. Kun olet tässä tilassa, voit vaihtaa 4 kt:n ja 16 kt:n tilan välillä yhdellä uudelleenkäynnistyksellä. Jotkin ominaisuudet on poistettu käytöstä näissä tiloissa, eivätkä kaikki sovellukset välttämättä toimi. Jos haluat palauttaa laitteen tuotantotilaan, sinun on vaihdettava takaisin 4 kt:n tilaan ja lukittava käynnistysohjelma. Tämä palauttaa laitteen tehdasasetukset. Kun laite käynnistyy Androidissa, poista OEM-avaus käytöstä kehittäjäasetuksista. Laite pyyhitään ja tiedostojärjestelmä vaihdetaan ext4-muotoon vahvistuksen jälkeen. Kun tämä on valmis, palaa ottamaan 16 kt:n tila uudelleen käyttöön."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Poista kaikki data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Dataosion tyhjentäminen ja uudelleenformatointi ext4-muotoon epäonnistui."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Edellyttää käynnistysohjelman avaamista"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Tämän laitteen käynnistysohjelma on avattava ennen 16 kt:n kehittäjäasetuksen käyttämistä. Ohjelmiston eheyttä ei voida taata tässä tilassa. Kaikki tälle puhelimelle tallennettu data voi olla vaarassa, kun käynnistysohjelman lukitus on auki. Kaikki käyttäjädata ja asetukset pyyhitään, kun 16 kt:n tila aktivoidaan. Kun käynnistysohjelman lukitus on avattu, 16 kt:n tilan aktivointi edellyttää kahta uudelleenkäynnistystä. Kun olet tässä tilassa, voit vaihtaa 4 kt:n ja 16 kt:n tilan välillä yhdellä uudelleenkäynnistyksellä. Jotkin ominaisuudet on poistettu käytöstä näissä tiloissa, eivätkä kaikki sovellukset välttämättä toimi. Jos haluat palauttaa laitteen tuotantotilaan, sinun on vaihdettava takaisin 4 kt:n tilaan ja tehtävä käynnistysohjelman tai OEM:n lukitus. Tämä palauttaa laitteen tehdasasetukset. Avaa käynnistysohjelman lukitus ja yritä uudelleen. Voit katsoa ohjeet tämän tekemiseen osoitteesta <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Käytetään 4 kt:n sivusta riippumatonta tilaa"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Olet sivusta riippumattoman tilan 4 kt:n tilassa. Ohjelmiston eheyttä ei voida taata tässä tilassa. Kaikki tälle puhelimelle tallennettu data voi olla vaarassa, kun käynnistysohjelman lukitus on auki. Jotkin ominaisuudet on poistettu käytöstä näissä tiloissa, eivätkä kaikki sovellukset välttämättä toimi. Jos haluat siirtyä tuotantotilaan uudelleen, sinun on lukittava käynnistysohjelma. Lue lisää napauttamalla."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Olet sivusta riippumattoman tilan 4 kt:n tilassa. Ohjelmiston eheyttä ei voida taata tässä tilassa. Kaikki tälle puhelimelle tallennettu data voi olla vaarassa, kun käynnistysohjelman lukitus on auki. Jotkin ominaisuudet on poistettu käytöstä näissä tiloissa, eivätkä kaikki sovellukset välttämättä toimi. Jos haluat siirtyä tuotantotilaan uudelleen, sinun on lukittava käynnistysohjelma. Tämä palauttaa laitteen tehdasasetukset uudelleen ja palauttaa sen tuotantoasetuksiin. Kun laite käynnistyy Androidissa, poista OEM-avaus käytöstä kehittäjäasetuksista. Jos laitteen käynnistäminen Androidiin epäonnistuu tai se on epävakaa, suorita Flash uudelleen viimeisimmillä tehdasasetusten näköistiedostoilla osoitteesta <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> tai käytä <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ja valitse \"Pyyhi laite\", \"Lukitse käynnistysohjelma\" tai \"Pakota Flash kaikille osioille\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Käytetään 16 kt:n sivusta riippumatonta tilaa"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Olet sivusta riippumattoman tilan 16 kt:n tilassa. Ohjelmiston eheyttä ei voida taata tässä tilassa. Kaikki tälle puhelimelle tallennettu data voi olla vaarassa, kun käynnistysohjelmaa ei ole lukittu. Jotkin ominaisuudet on poistettu käytöstä näissä tiloissa, eivätkä kaikki sovellukset välttämättä toimi. Jos haluat siirtyä tuotantotilaan uudelleen, sinun on vaihdettava takaisin 4 kt:n tilaan ja lukittava käynnistysohjelma. Lue lisää napauttamalla."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Olet sivusta riippumattoman tilan 16 kt:n tilassa. Ohjelmiston eheyttä ei voida taata tässä tilassa. Kaikki tälle puhelimelle tallennettu data voi olla vaarassa, kun käynnistysohjelmaa ei ole lukittu. Jotkin ominaisuudet on poistettu käytöstä näissä tiloissa, eivätkä kaikki sovellukset välttämättä toimi. Jos haluat siirtyä tuotantotilaan uudelleen, sinun on vaihdettava takaisin 4 kt:n tilaan ja lukittava käynnistysohjelma. Tämä palauttaa laitteen tehdasasetukset uudelleen ja palauttaa sen tuotantoasetuksiin. Kun laite käynnistyy Androidissa, poista OEM-avaus käytöstä kehittäjäasetuksista. Jos laitteen käynnistäminen Androidiin epäonnistuu tai se on epävakaa, suorita Flash uudelleen viimeisimmillä tehdasasetusten näköistiedostoilla osoitteesta <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> tai käytä <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ja valitse \"Pyyhi laite\", \"Lukitse käynnistysohjelma\" tai \"Pakota Flash kaikille osioille\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 kt:n sivusta riippumaton tila"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Lue lisää"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Virheraportin käsittelijä"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Valitse, mitä näytölläsi näkyy, kun tabletti on telineessä. Laitteesi saattaa käyttää enemmän virtaa, kun näytönsäästäjä on käytössä."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Yksilöi"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Muokkaa <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Vapaamuotoisen tilan käyttöönotto edellyttää uudelleenkäynnistystä."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Työpöytätilan pakottaminen toissijaisille näytöille edellyttää uudelleenkäynnistystä."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Vanhan vapaamuotoisen ikkunoinnin tuen käyttöönotto edellyttää, että käynnistät laitteen uudelleen."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Vapaamuotoisen ikkunoinnin tuen muutos edellyttää, että käynnistät laitteen uudelleen."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Vapaamuotoisen ikkunoinnin pakottaminen toissijaisilla näytöillä edellyttää, että käynnistät laitteen uudelleen."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Käynnistä uudelleen nyt"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Käynnistä uudelleen myöhemmin"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Tila-audio"</string>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 0849114..450e4de 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -98,7 +98,7 @@
<item msgid="6702740528496186521">"5"</item>
</string-array>
<string-array name="bluetooth_audio_routing_titles">
- <item msgid="3488687531285795335">"Utiliser la valeur par défaut de l\'application"</item>
+ <item msgid="3488687531285795335">"Utiliser la valeur par défaut de l\'appli"</item>
<item msgid="5112879855377353813">"Faire jouer sur l\'appareil auditif"</item>
<item msgid="4853360663119482646">"Faire jouer sur le haut-parleur du téléphone"</item>
</string-array>
@@ -348,7 +348,7 @@
<item msgid="3237802033158517495">"100 %"</item>
</string-array>
<string-array name="captioning_preset_selector_titles">
- <item msgid="3880932435325583041">"Défini par l\'application"</item>
+ <item msgid="3880932435325583041">"Défini par l\'appli"</item>
<item msgid="8719204526359229387">"Texte blanc sur fond noir"</item>
<item msgid="5410164687403735103">"Texte noir sur fond blanc"</item>
<item msgid="1119043472912497241">"Texte jaune sur fond noir"</item>
@@ -484,7 +484,7 @@
<!-- no translation found for rtt_setting_mode:3 (7725394146877517088) -->
<string-array name="nfc_payment_favor">
<item msgid="9104058551372383947">"Toujours"</item>
- <item msgid="5283665583617307336">"Sauf si une autre application de paiement est ouverte"</item>
+ <item msgid="5283665583617307336">"Sauf si une autre appli de paiement est ouverte"</item>
</string-array>
<string-array name="nfc_payment_favor_values">
<item msgid="2373999996715432397">"0"</item>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 46391f7..5e364e7 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -46,7 +46,7 @@
<string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Toujours"</string>
<string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"L\'écran frontal s\'allume lorsque vous pliez votre appareil"</string>
<string name="selective_stay_awake_title" msgid="7887645333447645168">"Seulement 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="selective_stay_awake_summary" msgid="9055967322921984543">"L\'écran frontal s\'allume pour les applis qui empêchent la mise en veille de votre écran"</string>
<string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Balayer vers le haut pour continuer"</string>
<string name="stay_awake_on_lockscreen_summary" msgid="8825321939913726566">"Pliez votre téléphone et balayez l\'écran frontal vers le haut pour continuer à utiliser l\'appli, ou attendez quelques secondes pour que l\'écran se verrouille. Les applis de jeux et de vidéos resteront ouvertes automatiquement."</string>
<string name="sleep_on_fold_title" msgid="7626123024330501411">"Jamais"</string>
@@ -87,7 +87,7 @@
<string name="bluetooth_call_title" msgid="6851464952021874072">"Sortie audio des appels"</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_audio_routing_footer_summary" msgid="410260713589309293">"Par défaut, la sortie audio est définie par les différentes applis"</string>
<string name="bluetooth_audio_codec_default_selection" msgid="4753278792700664175">"Utiliser la sélection du système (par défaut)"</string>
<string name="bluetooth_device" msgid="2217973503732544291">"Appareil Bluetooth sans nom"</string>
<string name="progress_scanning" msgid="2564746192843011826">"Recherche en cours…"</string>
@@ -100,8 +100,8 @@
<string name="device_picker" msgid="2427027896389445414">"Sélectionner un appareil Bluetooth"</string>
<string name="bluetooth_ask_enablement" msgid="1529030199895339199">"<xliff:g id="APP_NAME">%1$s</xliff:g> souhaite activer le Bluetooth"</string>
<string name="bluetooth_ask_disablement" msgid="1879788777942714761">"<xliff:g id="APP_NAME">%1$s</xliff:g> souhaite désactiver le Bluetooth"</string>
- <string name="bluetooth_ask_enablement_no_name" msgid="5091401961637405417">"Une application souhaite activer le Bluetooth."</string>
- <string name="bluetooth_ask_disablement_no_name" msgid="382299750909188822">"Une application souhaite désactiver le Bluetooth"</string>
+ <string name="bluetooth_ask_enablement_no_name" msgid="5091401961637405417">"Une appli souhaite activer le Bluetooth."</string>
+ <string name="bluetooth_ask_disablement_no_name" msgid="382299750909188822">"Une appli souhaite désactiver le Bluetooth"</string>
<string name="bluetooth_turning_on" msgid="3842613808709024730">"Activation du Bluetooth..."</string>
<string name="bluetooth_turning_off" msgid="7406309124247701148">"Désactivation du Bluetooth..."</string>
<string name="bluetooth_connection_permission_request" msgid="8793131019383198861">"Demande de connexion Bluetooth"</string>
@@ -156,7 +156,7 @@
<string name="proxy_error_empty_port" msgid="4250295137005082992">"Le champ « Port » est obligatoire."</string>
<string name="proxy_error_empty_host_set_port" msgid="8886572276450900049">"Le champ Port doit rester vide si le champ Hôte n\'est pas renseigné."</string>
<string name="proxy_error_invalid_port" msgid="2830054691770209166">"Le port indiqué n\'est pas valide."</string>
- <string name="proxy_warning_limited_support" msgid="3277104160797351942">"Le serveur mandataire HTTP est utilisé par le navigateur, mais ne peut pas l\'être par les autres applications."</string>
+ <string name="proxy_warning_limited_support" msgid="3277104160797351942">"Le serveur mandataire HTTP est utilisé par le navigateur, mais ne peut pas l\'être par les autres applis."</string>
<string name="proxy_url_title" msgid="3502625766036404073">"URL config. auto mand. : "</string>
<string name="radio_info_ping_hostname_v4" msgid="4790577760885127088">"Faire un ping de l\'IPv4 du nom d\'hôte (www.google.com) :"</string>
<string name="radio_info_http_client_test" msgid="5673975677271544085">"Test du client HTTP :"</string>
@@ -170,30 +170,30 @@
<string name="add_a_language" msgid="2126220398077503271">"Ajouter une langue"</string>
<string name="app_locale_preference_title" msgid="5513627099300360232">"Langue"</string>
<string name="locale_picker_category_title" msgid="6212064706962721255">"Langue favorite"</string>
- <string name="app_locales_picker_menu_title" msgid="7617427959223831373">"Langues des applications"</string>
- <string name="app_locale_picker_summary" msgid="6742557329924446252">"Configurez la langue pour chaque application"</string>
- <string name="app_locale_picker_title" msgid="2431448962911301366">"Langue de l\'application"</string>
+ <string name="app_locales_picker_menu_title" msgid="7617427959223831373">"Langues des applis"</string>
+ <string name="app_locale_picker_summary" msgid="6742557329924446252">"Configurez la langue pour chaque appli"</string>
+ <string name="app_locale_picker_title" msgid="2431448962911301366">"Langue de l\'appli"</string>
<string name="suggested_app_locales_title" msgid="8898358282377369405">"Langues suggérées"</string>
<string name="all_supported_app_locales_title" msgid="5479289964316009026">"Toutes les langues"</string>
<string name="preference_of_system_locale_title" msgid="8067226276038751504">"Langue du système"</string>
<string name="preference_of_system_locale_summary" msgid="5612241394431188535">"Paramètre système par défaut"</string>
- <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"La sélection de la langue pour cette application n\'est pas accessible à partir des paramètres."</string>
- <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"La langue peut différer des langues offertes dans l\'application. Certaines applications peuvent ne pas prendre en charge ce paramètre."</string>
- <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Configurez la langue pour chaque application."</string>
- <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Le système, les applications et les sites Web utilisent la première langue prise en charge parmi vos langues préférées."</string>
- <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Pour sélectionner une langue pour chaque application, consultez les paramètres de langue des applications."</string>
- <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"En savoir plus sur les langues des applications"</string>
+ <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"La sélection de la langue pour cette appli n\'est pas accessible à partir des paramètres."</string>
+ <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"La langue peut différer des langues offertes dans l\'appli. Certaines applis peuvent ne pas prendre en charge ce paramètre."</string>
+ <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Configurez la langue pour chaque appli."</string>
+ <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Le système, les applis et les sites Web utilisent la première langue prise en charge parmi vos langues préférées."</string>
+ <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Pour sélectionner une langue pour chaque appli, consultez les paramètres de langue des applis."</string>
+ <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"En savoir plus sur les langues des applis"</string>
<string name="title_change_system_locale" msgid="8589844586256566951">"Sélectionner %s comme langue du système?"</string>
<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>
- <string name="desc_unavailable_locale" msgid="2201756477400935896">"Cette langue ne peut pas être utilisée comme langue du système, mais vous avez indiqué aux applications et aux sites Web qu\'il s\'agissait de votre préférence."</string>
+ <string name="desc_unavailable_locale" msgid="2201756477400935896">"Cette langue ne peut pas être utilisée comme langue du système, mais vous avez indiqué aux applis et aux sites Web qu\'il s\'agissait de votre préférence."</string>
<string name="regional_preferences_title" msgid="4304567374498629528">"Préférences régionales"</string>
<string name="regional_preferences_summary" msgid="1189876997389469650">"Définissez les préférences relatives aux unités et aux chiffres"</string>
- <string name="regional_preferences_main_page_sub_title" msgid="4237109940015254725">"Indiquez aux applications vos préférences régionales afin qu\'elles puissent personnaliser votre expérience."</string>
- <string name="regional_preferences_option_page_sub_title" msgid="8303661099255197036">"Les applications utiliseront vos préférences régionales quand c\'est possible."</string>
+ <string name="regional_preferences_main_page_sub_title" msgid="4237109940015254725">"Indiquez aux applis vos préférences régionales afin qu\'elles puissent personnaliser votre expérience."</string>
+ <string name="regional_preferences_option_page_sub_title" msgid="8303661099255197036">"Les applis utiliseront vos préférences régionales quand c\'est possible."</string>
<string name="temperature_preferences_title" msgid="5009881556503629058">"Température"</string>
<string name="first_day_of_week_preferences_title" msgid="1971850087589599553">"Premier jour de la semaine"</string>
<string name="numbers_preferences_title" msgid="8197418984391195446">"Préférences relatives aux chiffres"</string>
@@ -207,12 +207,12 @@
<string name="thursday_first_day_of_week" msgid="3035885630945594833">"Jeudi"</string>
<string name="friday_first_day_of_week" msgid="7074795061812083541">"Vendredi"</string>
<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="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">"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="7338630812197476808">"Choisissez la façon dont on s\'adresse à vous"</string>
<string name="terms_of_address_summary" msgid="7802443422612600620">"Votre appareil peut personnaliser la façon dont on s\'adresse à vous"</string>
- <string name="terms_of_address_intro_title" msgid="1533951542181569335">"Ce paramètre permet à la plupart des applications système de personnaliser la façon dont on s\'adresse à vous. Il n\'est pas utilisé par les applications que vous installez."</string>
+ <string name="terms_of_address_intro_title" msgid="1533951542181569335">"Ce paramètre permet à la plupart des applis système de personnaliser la façon dont on s\'adresse à vous. Il n\'est pas utilisé par les applis que vous installez."</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>
@@ -284,8 +284,8 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Désactivé"</string>
<string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activée / # appli a accès à la position}one{Activée / # appli a accès à la position}other{Activée / # applis ont accès à la position}}"</string>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Chargement en cours…"</string>
- <string name="location_settings_footer_general" msgid="1040507068701188821">"Les 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_general" msgid="1040507068701188821">"Les applis qui disposent de l\'autorisation de détection des appareils à proximité peuvent déterminer la position relative des appareils connectés."</string>
+ <string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accès à la position est désactivé pour les applis et les services. La position de votre appareil pourrait quand même être envoyée aux intervenants d\'urgence lorsque vous appelez ou textez un numéro d\'urgence."</string>
<string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"En savoir plus sur les paramètres de localisation"</string>
<string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Pour modifier cela, accédez à Paramètres ChromeOS > Confidentialité et sécurité > Paramètres de confidentialité > Accès à la localisation"</string>
<string name="account_settings_title" msgid="9138880127246241885">"Comptes"</string>
@@ -295,7 +295,7 @@
<string name="lockscreen_settings_what_to_show_category" msgid="9205490627927741254">"Éléments affichés"</string>
<string name="disabled_by_administrator_summary" msgid="5424846182313851124">"Non accessible"</string>
<string name="security_status_title" msgid="6958004275337618656">"État de la sécurité"</string>
- <string name="security_dashboard_summary" msgid="7571035662779425918">"Verrouillage d\'écran, Localiser mon appareil, sécurité des applications"</string>
+ <string name="security_dashboard_summary" msgid="7571035662779425918">"Verrouillage d\'écran, Localiser mon appareil, sécurité des applis"</string>
<string name="safety_center_title" msgid="7732397372178774777">"Sécurité et confidentialité"</string>
<string name="safety_center_summary" msgid="3554867379951053869">"Sécurité applis, verrouillage appareil, autorisations"</string>
<string name="security_settings_face_preference_summary" msgid="6675126437396914838">"Visage ajouté"</string>
@@ -321,7 +321,7 @@
<string name="security_settings_face_enroll_consent_introduction_title" msgid="3942331854413767814">"Autoriser le déverr. par reconn. faciale"</string>
<string name="security_settings_face_enroll_introduction_title_unlock_disabled" msgid="5903924766168353113">"Utiliser son visage pour s\'authentifier"</string>
<string name="security_settings_face_enroll_introduction_message_unlock_disabled" msgid="5841976283789481311">"Utilisez votre visage pour déverrouiller votre téléphone ou autoriser des achats.\n\nRemarque : Vous ne pouvez pas utiliser votre visage pour déverrouiller cet appareil. Pour obtenir plus d\'information, communiquez avec l\'administrateur de votre organisation."</string>
- <string name="security_settings_face_enroll_introduction_message_setup" msgid="765965418187421753">"Utilisez votre visage pour déverrouiller votre téléphone, autoriser vos achats et vous connecter à des applications"</string>
+ <string name="security_settings_face_enroll_introduction_message_setup" msgid="765965418187421753">"Utilisez votre visage pour déverrouiller votre téléphone, autoriser vos achats et vous connecter à des applis"</string>
<string name="security_settings_face_enroll_introduction_info_title" msgid="7120796118179406944"></string>
<string name="security_settings_face_enroll_introduction_info_glasses" msgid="2733870453868907471"></string>
<string name="security_settings_face_enroll_introduction_info_consent_glasses" msgid="6303917184145586880"></string>
@@ -354,9 +354,9 @@
<string name="security_settings_face_settings_remove_face_model" msgid="812920481303980846">"Supprimer le modèle facial"</string>
<string name="security_settings_face_settings_enroll" msgid="3726313826693825029">"Config. le Déverr. par reconn. faciale"</string>
<string name="security_settings_face_settings_remove_dialog_title" msgid="2899669764446232715">"Supprimer le modèle facial?"</string>
- <string name="security_settings_face_settings_remove_dialog_details" msgid="916131485988121592">"Votre modèle facial sera supprimé définitivement de façon sécurisée.\n\nVous devrez ensuite utiliser votre NIP, votre schéma ou votre mot de passe pour déverrouiller votre téléphone ou pour vous authentifier dans les applications."</string>
+ <string name="security_settings_face_settings_remove_dialog_details" msgid="916131485988121592">"Votre modèle facial sera supprimé définitivement de façon sécurisée.\n\nVous devrez ensuite utiliser votre NIP, votre schéma ou votre mot de passe pour déverrouiller votre téléphone ou pour vous authentifier dans les applis."</string>
<string name="security_settings_face_settings_remove_dialog_details_convenience" msgid="475568135197468990">"Votre modèle facial sera supprimé de façon permanente et sécurisée.\n\nPour déverrouiller votre téléphone, vous aurez ensuite besoin de ce qui suit : NIP, schéma ou mot de passe."</string>
- <string name="security_settings_face_remove_dialog_details_fingerprint" msgid="7609582230650860974">"Votre modèle facial sera supprimé définitivement de façon sécurisée.\n\nVous devrez ensuite utiliser votre empreinte digitale, votre NIP, votre schéma ou votre mot de passe pour déverrouiller votre téléphone ou pour vous authentifier dans les applications."</string>
+ <string name="security_settings_face_remove_dialog_details_fingerprint" msgid="7609582230650860974">"Votre modèle facial sera supprimé définitivement de façon sécurisée.\n\nVous devrez ensuite utiliser votre empreinte digitale, votre NIP, votre schéma ou votre mot de passe pour déverrouiller votre téléphone ou pour vous authentifier dans les applis."</string>
<string name="security_settings_face_remove_dialog_details_fingerprint_conv" msgid="2627374706274503259">"Votre modèle facial sera supprimé de façon permanente et sécurisée.\n\nVous devrez ensuite utiliser votre empreinte digitale, votre NIP, votre schéma ou votre mot de passe pour déverrouiller votre téléphone."</string>
<string name="security_settings_face_settings_context_subtitle" msgid="8284262560781442403">"Utilisez le déverrouillage par reconnaissance faciale pour déverrouiller votre téléphone"</string>
<string name="security_settings_fingerprint" msgid="6387775386189204201">"Empreinte digitale"</string>
@@ -379,7 +379,7 @@
<string name="security_settings_fingerprint_enroll_introduction_agree" msgid="4068276083536421828">"J\'accepte"</string>
<string name="setup_fingerprint_enroll_skip_title" msgid="2473807887676247264">"Ignorer la configuration?"</string>
<string name="setup_fingerprint_enroll_skip_after_adding_lock_text" msgid="2412645723804450304">"La configuration de l\'empreinte digitale ne prend qu\'une minute ou deux. Si vous ignorez cette étape, vous pourrez ajouter votre empreinte digitale plus tard dans les paramètres."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_message_setup" msgid="6255210343107484206">"Si vous voyez cette icône, utilisez votre empreinte pour vous authentifier (comme pour vous connecter à des applications ou approuver un achat)"</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_message_setup" msgid="6255210343107484206">"Si vous voyez cette icône, utilisez votre empreinte pour vous authentifier (comme pour vous connecter à des applis ou approuver un achat)"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_1" msgid="4360262371633254407">"Gardez à l\'esprit"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Fonctionnement"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="5909924864816776516">"Le Déverrouillage par empreinte digitale crée un modèle unique de votre empreinte digitale pour vérifier qu\'il s\'agit bien de vous. Pour créer ce modèle durant la configuration, l\'appareil vous demandera de capturer des images de votre empreinte digitale dans différentes positions."</string>
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Ces données sont nécessaires comme la vérification de l\'identité est activée"</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>
@@ -447,7 +448,7 @@
<string name="biometric_settings_category_ways_to_unlock" msgid="3384767901580915266">"Méthodes de déverrouillage"</string>
<string name="biometric_settings_category_use_face_fingerprint" msgid="4377659744376863913">"Utiliser le visage ou l\'empreinte digitale pour"</string>
<string name="biometric_settings_use_biometric_unlock_phone" msgid="8180914579885804358">"Déverrouiller votre téléphone"</string>
- <string name="biometric_settings_use_biometric_for_apps" msgid="6201168728906364189">"Vérifier votre identité dans les applications"</string>
+ <string name="biometric_settings_use_biometric_for_apps" msgid="6201168728906364189">"Vérifier votre identité dans les applis"</string>
<string name="biometric_settings_use_face_preference_summary" msgid="1821648836899408477">"Utilisation du visage"</string>
<string name="biometric_settings_use_fingerprint_preference_summary" msgid="6077762097826050165">"Utilisation de l\'empreinte digitale"</string>
<string name="biometric_settings_use_face_or_fingerprint_preference_summary" msgid="3029102492674234728">"Utilisation du visage ou de l\'empreinte digitale"</string>
@@ -533,7 +534,7 @@
<string name="fingerprint_enroll_button_add" msgid="6652490687672815760">"Ajouter une empreinte"</string>
<string name="fingerprint_enroll_button_next" msgid="1034110123277869532">"Suivant"</string>
<string name="security_fingerprint_disclaimer_lockscreen_disabled_1" msgid="294529888220959309">"L\'option de verrouillage de l\'écran est désactivée. Pour en savoir plus, communiquez avec l\'administrateur de votre organisation."</string>
- <string name="security_fingerprint_disclaimer_lockscreen_disabled_2" msgid="8070829069640846543">"Vous pouvez toujours utiliser votre empreinte digitale pour autoriser des achats et accéder à des applications."</string>
+ <string name="security_fingerprint_disclaimer_lockscreen_disabled_2" msgid="8070829069640846543">"Vous pouvez toujours utiliser votre empreinte digitale pour autoriser des achats et accéder à des applis."</string>
<string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="2590665137265458789">"Relevez le doigt, puis touchez le capteur à nouveau"</string>
<string name="security_settings_fingerprint_bad_calibration_title" msgid="3073145395701953620">"Impossible d\'utiliser le capteur d\'empreintes digitales"</string>
<string name="security_settings_fingerprint_bad_calibration" msgid="304585658839584958">"Consultez un fournisseur de services de réparation."</string>
@@ -547,7 +548,7 @@
<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="1752064212078238723">"Espace privé"</string>
- <string name="private_space_summary" msgid="2274405892301976238">"Verrouiller et cacher les applications privées"</string>
+ <string name="private_space_summary" msgid="2274405892301976238">"Verrouiller et cacher les applis privées"</string>
<string name="private_space_description" msgid="4059594203775816136">"Conservez les applis privées dans un espace séparé que vous pouvez masquer ou verrouiller"</string>
<string name="private_space_lock_title" msgid="7230836881433350526">"Verrouillage de l\'espace privé"</string>
<string name="private_space_one_lock_summary" msgid="2106513606571219068">"Vous pouvez déverrouiller votre Espace privé de la même manière que votre appareil ou choisir un autre type de verrouillage"</string>
@@ -574,14 +575,14 @@
<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="9056139964133004094">"Choisir un nouveau verrou pour l\'Espace privé?"</string>
<string name="private_space_new_lock_message" msgid="3117703578905489206">"Vous devrez saisir le NIP, le schéma ou le mot de passe de votre appareil sur l\'écran suivant"</string>
- <string name="private_space_auto_lock_title" msgid="8663409382910601261">"Verrouiller automatiquement l\'Espace privé"</string>
+ <string name="private_space_auto_lock_title" msgid="8663409382910601261">"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="7107814517866649733">"5 min. après la mise veille de l\'écran"</string>
<string name="private_space_auto_lock_after_device_restart" msgid="288755768725895029">"Seul. après le redémarrage de l\'appareil"</string>
<string name="private_space_hide_page_title" msgid="3364639176511877414">"Masquer l\'espace privé"</string>
<string name="private_space_hide_when_locked" msgid="6219472348124151797">"Masquer l\'espace privé lorsqu\'il est verrouillé"</string>
- <string name="private_space_hide_page_summary" msgid="6247773353685839242">"Pour empêcher les autres personnes de savoir que vous avez un Espace privé sur votre appareil, vous pouvez le masquer à partir de votre liste d\'applications"</string>
+ <string name="private_space_hide_page_summary" msgid="6247773353685839242">"Pour empêcher les autres personnes de savoir que vous avez un Espace privé sur votre appareil, vous pouvez le masquer à partir de votre liste d\'applis"</string>
<string name="private_space_access_header" msgid="1077082416567150819">"Accéder à l\'Espace privé lorsqu\'il est masqué"</string>
<string name="private_space_search_description" msgid="1538155187658429618">"Dans la barre de recherche, saisissez « Espace privé »"</string>
<string name="private_space_tap_tile_description" msgid="6173556870938267361">"Touchez "<b>"Espace privé"</b></string>
@@ -608,16 +609,16 @@
<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="2272968244329821450">"Espace privé"</string>
- <string name="private_space_hide_apps_summary" msgid="4418722947376042418">"Masquez ou verrouillez les applications privées dans un espace à part. Utilisez un compte Google dédié pour plus de sécurité."</string>
+ <string name="private_space_hide_apps_summary" msgid="4418722947376042418">"Masquez ou verrouillez les applis privées dans un espace à part. Utilisez un compte Google dédié pour plus de sécurité."</string>
<string name="private_space_setup_sub_header" msgid="550476876393954356">"Fonctionnement"</string>
<string name="private_space_separate_account_text" msgid="790319706810190320"><b>"Créer un compte Google pour votre espace"</b>\n"Si vous utilisez un compte dédié, cela permet d\'éviter que des fichiers, des photos et des courriels synchronisés se retrouvent en dehors de votre espace"</string>
- <string name="private_space_protected_lock_text" msgid="9123250938334372735"><b>"Configurez un verrouillage"</b>\n"Verrouillez votre espace pour empêcher d\'autres personnes d\'y accéder"</string>
+ <string name="private_space_protected_lock_text" msgid="9123250938334372735"><b>"Configurer un verrouillage"</b>\n"Verrouillez votre espace pour empêcher d\'autres personnes d\'y accéder"</string>
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Installer les applis"</b>\n"Installez les applis que vous voulez garder privées dans votre espace"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Garder à l\'esprit"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Les applis s\'arrêtent lorsque vous verrouillez votre espace"</b>\n"Lorsque vous verrouillez votre espace, les applis qui s\'y trouvent sont arrêtées, et vous ne recevez aucune notification de leur part"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Les espaces privés ne conviennent pas aux applis qui doivent être exécutées en arrière-plan ou qui doivent envoyer des notifications critiques, comme les applis médicales. En effet, les notifications et les activités en arrière-plan sont interrompues lorsque votre espace est verrouillé.\n\nLes applications contenues dans votre espace privé n\'apparaîtront pas dans le gestionnaire des autorisations, sur le tableau de bord de confidentialité ni dans les autres paramètres quand l\'espace privé est verrouillé.\n\nVotre espace privé ne peut être déplacé vers un autre 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 applis nuisibles sur votre appareil peut être en mesure d\'accéder à votre espace privé."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Les espaces privés ne conviennent pas aux applis qui doivent être exécutées en arrière-plan ou qui doivent envoyer des notifications critiques, comme les applis médicales. En effet, les notifications et les activités en arrière-plan sont interrompues lorsque votre espace est verrouillé.\n\nLes applis contenues dans votre espace privé n\'apparaîtront pas dans le gestionnaire des autorisations, sur le tableau de bord de confidentialité ni dans les autres paramètres quand l\'espace privé est verrouillé.\n\nVotre espace privé ne peut être déplacé vers un autre 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 applis nuisibles sur votre appareil peut être en mesure d\'accéder à votre espace privé."</string>
<string name="private_space_settings_footer_text" msgid="3742468470394835356">"Les espaces privés ne conviennent pas aux applis qui doivent être exécutées en arrière-plan ou qui doivent envoyer des notifications critiques, comme les applis médicales. En effet, les notifications et les activités en arrière-plan sont interrompues lorsque votre espace est verrouillé.\n\nLes applis contenues dans votre espace privé n\'apparaîtront pas dans le gestionnaire des autorisations, sur le tableau de bord de confidentialité ni dans les autres paramètres quand l\'espace privé est verrouillé.\n\nVotre espace privé ne peut être restauré sur un autre appareil. Vous devrez créer un autre espace si vous souhaitez l\'utiliser sur un autre appareil.\n\nToute personne qui connecte votre appareil à un ordinateur ou installe des applis malveillantes sur votre appareil peut être en mesure d\'accéder à votre espace privé."</string>
- <string name="private_space_learn_more_text" msgid="5314198983263277586">"En savoir plus sur l\'Espace privé"</string>
+ <string name="private_space_learn_more_text" msgid="5314198983263277586">"En savoir plus sur l\'espace privé"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"L\'opération prendra quelques instants"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"Configuration de l\'Espace privé en cours…"</string>
<string name="private_space_error_screen_title" msgid="739381738044418346">"Impossible de configurer un Espace privé"</string>
@@ -628,7 +629,7 @@
<string name="private_space_set_lock_label" msgid="1790408277477408475">"Sélectionner un nouveau verrouillage"</string>
<string name="private_space_wait_screen_title" msgid="1535431437075585381">"Un instant…"</string>
<string name="private_space_success_title" msgid="4351904015352046118">"Tout est prêt!"</string>
- <string name="private_space_access_text" msgid="4433988836344567888">"Pour accéder à votre Espace privé, accédez à votre liste d\'applications, puis faites défiler vers le bas"</string>
+ <string name="private_space_access_text" msgid="4433988836344567888">"Pour accéder à votre Espace privé, accédez à votre liste d\'applis, 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>
<string name="private_space_retry_signin_title" msgid="8090276618867918844">"Se connecter"</string>
@@ -646,7 +647,7 @@
<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>
<string name="fingerprint_delete_title" msgid="5412123164503407098">"Supprimer « <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> »"</string>
- <string name="fingerprint_last_delete_message_profile_challenge" msgid="4104208067277655068">"Vous ne pourrez pas utiliser votre empreinte digitale pour déverrouiller votre profil professionnel, autoriser vos achats ni vous connecter à des applications professionnelles."</string>
+ <string name="fingerprint_last_delete_message_profile_challenge" msgid="4104208067277655068">"Vous ne pourrez pas utiliser votre empreinte digitale pour déverrouiller votre profil professionnel, autoriser vos achats ni vous connecter à des applis professionnelles."</string>
<string name="encryption_settings_title" msgid="2848716008695618360">"Chiffrement"</string>
<string name="encrypted_summary" msgid="545623487587251207">"Chiffrement activé"</string>
<string name="no_screen_lock_issue_title" msgid="1814109590692792891">"Configurer le verrouillage de l\'écran"</string>
@@ -702,68 +703,68 @@
<string name="unlock_disable_frp_warning_content_pattern" msgid="6246242612158828147">"Un schéma protège votre téléphone en cas de perte ou de vol"</string>
<string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="2259825377085781801">"Un schéma protège votre téléphone en cas de perte ou de vol.<xliff:g id="EMPTY_LINE">
-</xliff:g>Cette fonctionnalité supprime également le modèle d\'empreinte digitale stocké sur votre appareil. Vous ne pourrez pas utiliser votre empreinte digitale pour vous authentifier dans les applications."</string>
+</xliff:g>Cette fonctionnalité supprime également le modèle d\'empreinte digitale stocké sur votre appareil. Vous ne pourrez pas utiliser votre empreinte digitale pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_pattern_face" msgid="4699508435412336378">"Un schéma protège votre téléphone en cas de perte ou de vol.<xliff:g id="EMPTY_LINE">
-</xliff:g>Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage pour vous authentifier dans les applications."</string>
+</xliff:g>Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_pattern_face_fingerprint" msgid="7049706229344804972">"Un schéma protège votre téléphone en cas de perte ou de vol.<xliff:g id="EMPTY_LINE">
-</xliff:g>Cette fonctionnalité supprime le modèle d\'empreinte digitale stocké sur votre appareil. Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage ni votre empreinte digitale pour vous authentifier dans les applications."</string>
+</xliff:g>Cette fonctionnalité supprime le modèle d\'empreinte digitale stocké sur votre appareil. Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage ni votre empreinte digitale pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_pin" msgid="122154942944422284">"Un NIP protège votre téléphone en cas de perte ou de vol"</string>
<string name="unlock_disable_frp_warning_content_pin_fingerprint" msgid="983373874470746066">"Un NIP protège votre téléphone en cas de perte ou de vol.<xliff:g id="EMPTY_LINE">
-</xliff:g>Cette fonctionnalité supprime également le modèle d\'empreinte digitale stocké sur votre appareil. Vous ne pourrez pas utiliser votre empreinte digitale pour vous authentifier dans les applications."</string>
+</xliff:g>Cette fonctionnalité supprime également le modèle d\'empreinte digitale stocké sur votre appareil. Vous ne pourrez pas utiliser votre empreinte digitale pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_pin_face" msgid="5607150515413131761">"Un NIP protège votre téléphone en cas de perte ou de vol.<xliff:g id="EMPTY_LINE">
-</xliff:g>Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage pour vous authentifier dans les applications."</string>
+</xliff:g>Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_pin_face_fingerprint" msgid="1821792325159866312">"Un NIP protège votre téléphone en cas de perte ou de vol.<xliff:g id="EMPTY_LINE">
-</xliff:g>Cette fonctionnalité supprime le modèle d\'empreinte digitale stocké sur votre appareil. Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage ni votre empreinte digitale pour vous authentifier dans les applications."</string>
+</xliff:g>Cette fonctionnalité supprime le modèle d\'empreinte digitale stocké sur votre appareil. Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage ni votre empreinte digitale pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_password" msgid="6422723907917376210">"Un mot de passe protège votre téléphone en cas de perte ou de vol"</string>
<string name="unlock_disable_frp_warning_content_password_fingerprint" msgid="8899452884016354856">"Un mot de passe protège votre téléphone en cas de perte ou de vol.<xliff:g id="EMPTY_LINE">
-</xliff:g>Cette fonctionnalité supprime également le modèle d\'empreinte digitale stocké sur votre appareil. Vous ne pourrez pas utiliser votre empreinte digitale pour vous authentifier dans les applications."</string>
+</xliff:g>Cette fonctionnalité supprime également le modèle d\'empreinte digitale stocké sur votre appareil. Vous ne pourrez pas utiliser votre empreinte digitale pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_password_face" msgid="1811067332335964495">"Un mot de passe protège votre téléphone en cas de perte ou de vol.<xliff:g id="EMPTY_LINE">
-</xliff:g>Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage pour vous authentifier dans les applications."</string>
+</xliff:g>Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_password_face_fingerprint" msgid="7063649456205159491">"Un mot de passe protège votre téléphone en cas de perte ou de vol.<xliff:g id="EMPTY_LINE">
-</xliff:g>Cette fonctionnalité supprime le modèle d\'empreinte digitale stocké sur votre appareil. Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage ni votre empreinte digitale pour vous authentifier dans les applications."</string>
+</xliff:g>Cette fonctionnalité supprime le modèle d\'empreinte digitale stocké sur votre appareil. Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage ni votre empreinte digitale pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_unknown" msgid="8903568674104115231">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre verrouillage d\'écran."</string>
<string name="unlock_disable_frp_warning_content_unknown_fingerprint" msgid="6542744110902941189">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre verrouillage d\'écran.<xliff:g id="EMPTY_LINE">
-</xliff:g>Cette fonctionnalité supprime également le modèle d\'empreinte digitale stocké sur votre appareil. Vous ne pourrez pas utiliser votre empreinte digitale pour vous authentifier dans les applications."</string>
+</xliff:g>Cette fonctionnalité supprime également le modèle d\'empreinte digitale stocké sur votre appareil. Vous ne pourrez pas utiliser votre empreinte digitale pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_unknown_face" msgid="4559917661432267841">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre verrouillage d\'écran.<xliff:g id="EMPTY_LINE">
-</xliff:g>Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage pour vous authentifier dans les applications."</string>
+</xliff:g>Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_unknown_face_fingerprint" msgid="3779582301453677644">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre verrouillage d\'écran.<xliff:g id="EMPTY_LINE">
-</xliff:g>Cette fonctionnalité supprime le modèle d\'empreinte digitale stocké sur votre appareil. Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage ni votre empreinte digitale pour vous authentifier dans les applications."</string>
+</xliff:g>Cette fonctionnalité supprime le modèle d\'empreinte digitale stocké sur votre appareil. Votre modèle facial sera également supprimé définitivement de façon sécurisée. Vous ne pourrez pas utiliser votre visage ni votre empreinte digitale pour vous authentifier dans les applis."</string>
<string name="unlock_disable_frp_warning_content_authbound_keys" msgid="6397327696248819663">"Le verrouillage de l\'écran sera retiré.<xliff:g id="EMPTY_LINE_0">
</xliff:g>Le Paiement sans contact ne sera pas accessible.<xliff:g id="EMPTY_LINE_1">
-</xliff:g>Le Portefeuille, le paiement et d\'autres applications nécessitant une authentification pourraient ne pas fonctionner correctement."</string>
+</xliff:g>Le Portefeuille, le paiement et d\'autres applis nécessitant une authentification pourraient ne pas fonctionner correctement."</string>
<string name="unlock_disable_frp_warning_content_fingerprint_authbound_keys" msgid="7158076544627335461">"Le verrouillage de l\'écran et le Déverrouillage par empreinte digitale seront retirés.<xliff:g id="EMPTY_LINE_0">
</xliff:g>Le Paiement sans contact ne sera pas accessible.<xliff:g id="EMPTY_LINE_1">
-</xliff:g>Le Portefeuille, le paiement et d\'autres applications nécessitant une authentification pourraient ne pas fonctionner correctement."</string>
+</xliff:g>Le Portefeuille, le paiement et d\'autres applis nécessitant une authentification pourraient ne pas fonctionner correctement."</string>
<string name="unlock_disable_frp_warning_content_face_authbound_keys" msgid="8120786951217029818">"Le verrouillage de l\'écran et le Déverrouillage par reconnaissance faciale seront retirés.<xliff:g id="EMPTY_LINE_0">
</xliff:g>Le Paiement sans contact ne sera pas accessible.<xliff:g id="EMPTY_LINE_1">
-</xliff:g>Le Portefeuille, le paiement et d\'autres applications nécessitant une authentification pourraient ne pas fonctionner correctement."</string>
+</xliff:g>Le Portefeuille, le paiement et d\'autres applis nécessitant une authentification pourraient ne pas fonctionner correctement."</string>
<string name="unlock_disable_frp_warning_content_face_fingerprint_authbound_keys" msgid="1574263040292024543">"Le verrouillage de l\'écran et le Déverrouillage par reconnaissance faciale et par empreinte digitale seront retirés.<xliff:g id="EMPTY_LINE_0">
</xliff:g>Le Paiement sans contact ne sera pas accessible.<xliff:g id="EMPTY_LINE_1">
-</xliff:g>Le Portefeuille, le paiement et d\'autres applications nécessitant une authentification pourraient ne pas fonctionner correctement."</string>
+</xliff:g>Le Portefeuille, le paiement et d\'autres applis nécessitant une authentification pourraient ne pas fonctionner correctement."</string>
<string name="unlock_disable_frp_warning_ok" msgid="6173427638951230842">"Supprimer"</string>
<string name="unlock_footer_high_complexity_requested" msgid="4471274783909915352">"<xliff:g id="APP_NAME">%1$s</xliff:g> recommande d\'utiliser un NIP ou un mot de passe robuste et risque de ne pas fonctionner comme prévu si vous n\'en définissez pas un"</string>
<string name="unlock_footer_medium_complexity_requested" msgid="5515870066751600640">"<xliff:g id="APP_NAME">%1$s</xliff:g> recommande d\'utiliser un nouveau NIP ou mot de passe et risque de ne pas fonctionner comme prévu si vous n\'en définissez pas un"</string>
<string name="unlock_footer_low_complexity_requested" msgid="2517656037576567971">"<xliff:g id="APP_NAME">%1$s</xliff:g> recommande d\'utiliser un nouveau schéma, NIP ou mot de passe et risque de ne pas fonctionner comme prévu si vous n\'en définissez pas un"</string>
- <string name="unlock_footer_none_complexity_requested" msgid="8534900170428140529">"L\'application <xliff:g id="APP_NAME">%1$s</xliff:g> vous recommande d\'utiliser un nouveau mode de verrouillage de l\'écran"</string>
+ <string name="unlock_footer_none_complexity_requested" msgid="8534900170428140529">"L\'appli <xliff:g id="APP_NAME">%1$s</xliff:g> vous recommande d\'utiliser un nouveau mode de verrouillage de l\'écran"</string>
<string name="lock_failed_attempts_before_wipe" msgid="6874652886647631418">"Réessayez. Tentative <xliff:g id="CURRENT_ATTEMPTS">%1$d</xliff:g> sur <xliff:g id="TOTAL_ATTEMPTS">%2$d</xliff:g>."</string>
<string name="lock_last_attempt_before_wipe_warning_title" msgid="7450322567217745999">"Vos données seront supprimées"</string>
<string name="lock_last_pattern_attempt_before_wipe_device" msgid="5816668400104558952">"Si vous entrez un schéma incorrect à la prochaine tentative, les données de cet appareil seront supprimées."</string>
@@ -797,9 +798,9 @@
<string name="lockpassword_credential_changed" msgid="5934778179732392028">"Le verrouillage d\'écran a déjà été modifié. Réessayez avec le nouveau verrouillage d\'écran."</string>
<string name="lockpattern_tutorial_cancel_label" msgid="775215267818384016">"Annuler"</string>
<string name="lockpattern_tutorial_continue_label" msgid="1329049481210689408">"Suivant"</string>
- <string name="manage_device_admin" msgid="1044620606203916275">"Applications d\'administration d\'appareils"</string>
- <string name="number_of_device_admins_none" msgid="152926922020437312">"Aucune application active"</string>
- <string name="number_of_device_admins" msgid="3402909995362162876">"{count,plural, =1{# application active}one{# application active}other{# applications actives}}"</string>
+ <string name="manage_device_admin" msgid="1044620606203916275">"Applis d\'administration d\'appareils"</string>
+ <string name="number_of_device_admins_none" msgid="152926922020437312">"Aucune appli active"</string>
+ <string name="number_of_device_admins" msgid="3402909995362162876">"{count,plural, =1{# appli active}one{# appli active}other{# applis actives}}"</string>
<string name="manage_trust_agents" msgid="6410149930029992356">"Agents de confiance"</string>
<string name="disabled_because_no_backup_security" msgid="4998095356607488854">"Pour l\'utiliser, définissez d\'abord un écran de verrouillage"</string>
<string name="manage_trust_agents_summary" msgid="6423843123607674286">"Aucun"</string>
@@ -827,8 +828,8 @@
<string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"Associer et connecter"</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_empty_list_bluetooth_off_auto_on_available" msgid="3430864468105204282">"Si le Bluetooth est activé, votre appareil peut communiquer avec d\'autres appareils Bluetooth à proximité. Les fonctionnalités comme Partage rapide et Localiser mon appareil utilisent le Bluetooth."</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_scanning_on_info_message_auto_on_available" msgid="7792443293031247638">"Si le Bluetooth est activé, votre appareil peut communiquer avec d\'autres appareils Bluetooth à proximité. Les fonctionnalités comme Partage rapide et Localiser mon appareil utilisent le Bluetooth.\n\nLes applications et les services peuvent continuer de rechercher les appareils à proximité en tout temps, même si le Bluetooth est désactivé. Cela 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 d\'appareils Bluetooth."</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 applis 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_scanning_on_info_message_auto_on_available" msgid="7792443293031247638">"Si le Bluetooth est activé, votre appareil peut communiquer avec d\'autres appareils Bluetooth à proximité. Les fonctionnalités comme Partage rapide et Localiser mon appareil utilisent le Bluetooth.\n\nLes applis et les services peuvent continuer de rechercher les appareils à proximité en tout temps, même si le Bluetooth est désactivé. Cela 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 d\'appareils Bluetooth."</string>
<string name="bluetooth_scan_change" msgid="1744636222637390367">"Modifier"</string>
<string name="device_details_title" msgid="1155622417516195481">"Détails de l\'appareil"</string>
<string name="bluetooth_device_keyboard_settings_preference_title" msgid="3411693160917620519">"Paramètres du clavier"</string>
@@ -836,11 +837,11 @@
<string name="bluetooth_multuple_devices_mac_address" msgid="4974301550897923376">"Adresse Bluetooth de l\'appareil :\n<xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
<string name="bluetooth_unpair_dialog_title" msgid="6943633443716052995">"Oublier l\'appareil?"</string>
<string name="remove_association_button" msgid="5004208145998061135">"Retirer l\'association"</string>
- <string name="bluetooth_companion_app_remove_association_dialog_title" msgid="1344518601377991897">"Déconnecter l\'application?"</string>
- <string name="bluetooth_companion_app_body" msgid="8442643629075687761">"L\'application <xliff:g id="APP_NAME">%1$s</xliff:g> ne se connectera plus à votre <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
+ <string name="bluetooth_companion_app_remove_association_dialog_title" msgid="1344518601377991897">"Déconnecter l\'appli?"</string>
+ <string name="bluetooth_companion_app_body" msgid="8442643629075687761">"L\'appli <xliff:g id="APP_NAME">%1$s</xliff:g> ne se connectera plus à votre <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string>
<string name="device_details_leaudio_toggle_summary" msgid="7684848254433230809">"Expérimental. Améliore l\'audio."</string>
<string name="bluetooth_unpair_dialog_forget_confirm_button" msgid="9184489424930549015">"Oublier l\'appareil"</string>
- <string name="bluetooth_companion_app_remove_association_confirm_button" msgid="76323555527926915">"Déconnecter l\'application"</string>
+ <string name="bluetooth_companion_app_remove_association_confirm_button" msgid="76323555527926915">"Déconnecter l\'appli"</string>
<string name="bluetooth_max_connected_audio_devices_string" msgid="3114156958598821615">"Maximum d\'appareils audio Bluetooth connectés"</string>
<string name="bluetooth_max_connected_audio_devices_dialog_title" msgid="4056811727247312473">"Sélectionnez le nombre maximal d\'appareils Bluetooth connectés"</string>
<string name="nfc_verbose_vendor_log_title" msgid="5554505631122964628">"Journal de débogage détaillé des fournisseurs CCP"</string>
@@ -905,7 +906,7 @@
<string name="wifi_ask_enable" msgid="6860056048266810769">"<xliff:g id="REQUESTER">%s</xliff:g> souhaite activer le Wi-Fi"</string>
<string name="wifi_ask_disable" msgid="1663208096020309639">"<xliff:g id="REQUESTER">%s</xliff:g> souhaite désactiver le Wi-Fi"</string>
<string name="art_verifier_for_debuggable_title" msgid="1926445785190030479">"Vérif. code à octets des applis déboguables"</string>
- <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Autoriser ART à vérifier le code à octets pour les applications débogables"</string>
+ <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Autoriser ART à vérifier le code à octets pour les applis 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>
@@ -913,10 +914,10 @@
<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 technologie CCP"</string>
<string name="android_beam_settings_title" msgid="2797963824490671295">"Android Beam"</string>
- <string name="android_beam_on_summary" msgid="6067720758437490896">"Prêt à partager le contenu de l\'application par CCP"</string>
+ <string name="android_beam_on_summary" msgid="6067720758437490896">"Prêt à partager le contenu de l\'appli par CCP"</string>
<string name="android_beam_off_summary" msgid="5693961375631325042">"Désactivé"</string>
<string name="nfc_disabled_summary" msgid="8737797364522502351">"Non accessible, car la CCP est désactivée"</string>
- <string name="android_beam_explained" msgid="5684416131846701256">"Lorsque cette fonctionnalité est activée, vous pouvez partager le contenu d\'une application avec un appareil compatible CCP en rapprochant les appareils. Vous pouvez, par exemple, partager des pages Web, des vidéos YouTube, des contacts et plus encore.\n\nIl vous suffit de rapprocher les appareils (en les plaçant généralement dos à dos), puis de toucher votre écran. L\'application détermine le contenu à transférer."</string>
+ <string name="android_beam_explained" msgid="5684416131846701256">"Lorsque cette fonctionnalité est activée, vous pouvez partager le contenu d\'une appli avec un appareil compatible CCP en rapprochant les appareils. Vous pouvez, par exemple, partager des pages Web, des vidéos YouTube, des contacts et plus encore.\n\nIl vous suffit de rapprocher les appareils (en les plaçant généralement dos à dos), puis de toucher votre écran. L\'appli détermine le contenu à transférer."</string>
<string name="wifi_settings" msgid="8313301946393559700">"Wi-Fi"</string>
<string name="wifi_settings_primary_switch_title" msgid="628360786662947258">"Utiliser le Wi-Fi"</string>
<string name="wifi_settings_category" msgid="3523464780563778321">"Paramètres Wi-Fi"</string>
@@ -935,7 +936,7 @@
<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>
<string name="wifi_install_credentials" msgid="5192903644606839972">"Installer des certificats"</string>
- <string name="wifi_scan_notify_text" msgid="7163137260385995873">"Pour améliorer la précision de la localisation, les applications et les services peuvent quand même rechercher des réseaux Wi‑Fi en tout temps, même lorsque le Wi‑Fi est désactivé. Cela pourrait être utilisé, par exemple, pour améliorer les fonctionnalités et les services qui utilisent la localisation. Vous pouvez modifier vos préférences dans les <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>paramètres de recherche de réseaux Wi-Fi<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+ <string name="wifi_scan_notify_text" msgid="7163137260385995873">"Pour améliorer la précision de la localisation, les applis et les services peuvent quand même rechercher des réseaux Wi‑Fi en tout temps, même lorsque le Wi‑Fi est désactivé. Cela pourrait être utilisé, par exemple, pour améliorer les fonctionnalités et les services qui utilisent la localisation. Vous pouvez modifier vos préférences dans les <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>paramètres de recherche de réseaux Wi-Fi<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
<string name="wifi_scan_notify_text_scanning_off" msgid="7439201783168213149">"Pour améliorer la précision de la localisation, activez la recherche de réseaux Wi-Fi dans les <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>paramètres de recherche de réseaux Wi-Fi<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
<string name="wifi_cellular_data_fallback_title" msgid="2844653839490977040">"Passer automatiquement au réseau cellulaire"</string>
<string name="wifi_cellular_data_fallback_summary" msgid="7039944853033554386">"Utiliser le réseau de données cellulaires lorsque le réseau Wi-Fi n\'a pas accès à Internet. Des frais d\'utilisation de données peuvent s\'appliquer."</string>
@@ -949,11 +950,11 @@
<string name="wifi_empty_list_user_restricted" msgid="454861411536708709">"Vous n\'avez pas l\'autorisation de modifier le réseau Wi‑Fi."</string>
<string name="wifi_settings_scanning_required_title" msgid="1088663325396007484">"Activer la Recherche de réseaux Wi-Fi?"</string>
<string name="wifi_settings_scanning_required_summary" msgid="4770243653675416569">"Pour activer automatiquement le Wi-Fi, vous devez d\'abord activer la Recherche de réseaux Wi-Fi."</string>
- <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_info" msgid="1473411566072565789">"La Recherche de réseaux Wi-Fi permet aux applis 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="7032462362300663466">"Ce réseau utilise un protocole de sécurité plus ancien appelé WEP, qui est 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_blocked_title" msgid="8337700496544833669">"L\'appli <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="5891581925109256871">"Votre opérateur ne vous permet pas de vous connecter à ce réseau, car il utilise un protocole de sécurité plus ancien appelé WEP, qui est moins sécuritaire"</string>
<string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Autoriser WEP"</string>
@@ -1046,7 +1047,7 @@
<string name="wifi_ssid_too_long" msgid="5961719058705013875">"Le nom du réseau est trop long."</string>
<string name="wifi_no_domain_warning" msgid="1452133316532366772">"Vous devez spécifier un domaine."</string>
<string name="wifi_no_user_cert_warning" msgid="8466376918835248956">"Certificat obligatoire."</string>
- <string name="wifi_scan_always_turnon_message" msgid="2165909441512029921">"Pour améliorer la précision de la position et à d\'autres fins, <xliff:g id="APP_NAME">%1$s</xliff:g> souhaite activer la recherche de réseaux, même lorsque le Wi-Fi est désactivé.\n\nDonner cette autorisation à toutes les applications souhaitant activer la recherche de réseaux?"</string>
+ <string name="wifi_scan_always_turnon_message" msgid="2165909441512029921">"Pour améliorer la précision de la position et à d\'autres fins, <xliff:g id="APP_NAME">%1$s</xliff:g> souhaite activer la recherche de réseaux, même lorsque le Wi-Fi est désactivé.\n\nDonner cette autorisation à toutes les applis souhaitant activer la recherche de réseaux?"</string>
<string name="wifi_scan_always_turn_on_message_unknown" msgid="4903345360745717385">"Pour améliorer la précision de la position, une appli inconnue souhaite activer la recherche de réseaux, même lorsque le Wi-Fi est désactivé.\n\nAutoriser toutes les applis qui le demandent?"</string>
<string name="wifi_scan_always_confirm_allow" msgid="4154200627800959777">"Autoriser"</string>
<string name="wifi_scan_always_confirm_deny" msgid="6997087934558839256">"Refuser"</string>
@@ -1212,7 +1213,7 @@
<string name="screen_resolution_title" msgid="2690518693139811486">"Résolution de l\'écran"</string>
<string name="screen_resolution_option_high" msgid="2617496842852992853">"Haute résolution"</string>
<string name="screen_resolution_option_full" msgid="2694003735219114186">"Résolution intégrale"</string>
- <string name="screen_resolution_footer" msgid="6772341522952795647">"La résolution intégrale sollicite davantage votre pile. Le changement de résolution peut entraîner le redémarrage de certaines applications."</string>
+ <string name="screen_resolution_footer" msgid="6772341522952795647">"La résolution intégrale sollicite davantage votre pile. Le changement de résolution peut entraîner le redémarrage de certaines applis."</string>
<string name="screen_resolution_selected_a11y" msgid="6158451180032224977">"Sélectionnée"</string>
<string name="color_mode_title" msgid="8666690832113906028">"Couleurs"</string>
<string name="color_mode_option_natural" msgid="6192875655101283303">"Naturelles"</string>
@@ -1227,7 +1228,7 @@
<string name="auto_brightness_summary_off" msgid="8077066192887677956">"Désactivée"</string>
<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="fold_lock_behavior_title" msgid="786228803694268449">"Continuer à utiliser les applis lorsque l\'appareil est plié"</string>
<string name="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Désactiver la fréquence d\'images par défaut 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>
@@ -1427,11 +1428,11 @@
<string name="storage_unmount_failure" msgid="3796912279003790607">"Impossible d\'éjecter <xliff:g id="NAME">%1$s</xliff:g> en toute sécurité"</string>
<string name="storage_rename_title" msgid="5911285992205282312">"Renommer le stockage"</string>
<string name="storage_dialog_unmountable" msgid="1761107904296941687">"La mémoire de stockage « <xliff:g id="NAME_0">^1</xliff:g> » est corrompue. \n\nPour utiliser la mémoire « <xliff:g id="NAME_1">^1</xliff:g> », vous devez d\'abord la configurer."</string>
- <string name="storage_internal_format_details" msgid="2399034372813686846">"Vous pouvez formater cette carte SD pour y stocker des photos, des vidéos, de la musique et plus encore. Vous pouvez aussi y accéder à partir d\'autres appareils. \n\n"<b>"Toutes les données de cette carte SD seront supprimées."</b>" \n\n"<b>"Avant le formatage"</b>" \n\n"<b>"Sauvegardez les photos et les autres contenus multimédias"</b>" \nDéplacez vos fichiers multimédias vers un autre support de stockage sur cet appareil, ou transférez-les sur un ordinateur au moyen d\'un câble USB. \n\n"<b>"Sauvegardez vos applications"</b>" \nToutes les applications stockées sur cette <xliff:g id="NAME">^1</xliff:g> seront désinstallées, et leurs données seront supprimées. Pour conserver ces applications, déplacez-les vers un autre support de stockage sur cet appareil."</string>
- <string name="storage_internal_unmount_details" msgid="487689543322907311"><b>"Lorsque vous éjectez la mémoire de stockage « <xliff:g id="NAME_0">^1</xliff:g> », les applications qui y sont enregistrées cessent de fonctionner, et les fichiers qu\'elle contient ne sont plus accessibles jusqu\'à ce que vous la réinsériez de nouveau."</b>\n\n"La mémoire de stockage « <xliff:g id="NAME_1">^1</xliff:g> » a été configurée pour ne fonctionner que sur cet appareil. Vous ne pouvez pas l\'utiliser sur d\'autres appareils."</string>
- <string name="storage_internal_forget_details" msgid="5606507270046186691">"Pour utiliser les applications, les photos ou les données que la mémoire de stockage « <xliff:g id="NAME">^1</xliff:g> » contient, insérez de nouveau celle-ci. \n\nVous pouvez également la supprimer de la liste des mémoires de stockage si elle n\'est pas disponible. \n\nSi vous la supprimez, toutes les données qu\'elle contient seront définitivement effacées. \n\nVous pouvez réinstaller les applications plus tard, mais les données correspondantes enregistrées sur cette mémoire seront perdues."</string>
+ <string name="storage_internal_format_details" msgid="2399034372813686846">"Vous pouvez formater cette carte SD pour y stocker des photos, des vidéos, de la musique et plus encore. Vous pouvez aussi y accéder à partir d\'autres appareils. \n\n"<b>"Toutes les données de cette carte SD seront supprimées."</b>" \n\n"<b>"Avant le formatage"</b>" \n\n"<b>"Sauvegardez les photos et les autres contenus multimédias"</b>" \nDéplacez vos fichiers multimédias vers un autre support de stockage sur cet appareil, ou transférez-les sur un ordinateur au moyen d\'un câble USB. \n\n"<b>"Sauvegardez vos applis"</b>" \nToutes les applis stockées sur cette <xliff:g id="NAME">^1</xliff:g> seront désinstallées, et leurs données seront supprimées. Pour conserver ces applis, déplacez-les vers un autre support de stockage sur cet appareil."</string>
+ <string name="storage_internal_unmount_details" msgid="487689543322907311"><b>"Lorsque vous éjectez la mémoire de stockage « <xliff:g id="NAME_0">^1</xliff:g> », les applis qui y sont enregistrées cessent de fonctionner, et les fichiers qu\'elle contient ne sont plus accessibles jusqu\'à ce que vous la réinsériez de nouveau."</b>\n\n"La mémoire de stockage « <xliff:g id="NAME_1">^1</xliff:g> » a été configurée pour ne fonctionner que sur cet appareil. Vous ne pouvez pas l\'utiliser sur d\'autres appareils."</string>
+ <string name="storage_internal_forget_details" msgid="5606507270046186691">"Pour utiliser les applis, les photos ou les données que la mémoire de stockage « <xliff:g id="NAME">^1</xliff:g> » contient, insérez de nouveau celle-ci. \n\nVous pouvez également la supprimer de la liste des mémoires de stockage si elle n\'est pas disponible. \n\nSi vous la supprimez, toutes les données qu\'elle contient seront définitivement effacées. \n\nVous pouvez réinstaller les applis plus tard, mais les données correspondantes enregistrées sur cette mémoire seront perdues."</string>
<string name="storage_internal_forget_confirm_title" msgid="379238668153099015">"Oublier « <xliff:g id="NAME">^1</xliff:g> »?"</string>
- <string name="storage_internal_forget_confirm" msgid="5752634604952674123">"Toutes les applications, photos et données enregistrées sur la mémoire de stockage « <xliff:g id="NAME">^1</xliff:g> » seront perdues définitivement."</string>
+ <string name="storage_internal_forget_confirm" msgid="5752634604952674123">"Toutes les applis, photos et données enregistrées sur la mémoire de stockage « <xliff:g id="NAME">^1</xliff:g> » seront perdues définitivement."</string>
<string name="storage_detail_dialog_system" msgid="7461009051858709479">"Le répertoire Système comprend des fichiers utilisés pour faire fonctionner Android version <xliff:g id="VERSION">%s</xliff:g>"</string>
<string name="storage_os_detail_dialog_system" msgid="1423073052313067844">"Cela comprend votre système d\'exploitation et les fichiers nécessaires au bon fonctionnement de votre téléphone. Pour protéger leur intégrité, ces fichiers ne sont pas accessibles."</string>
<string name="storage_other_files_detail_dialog_system" msgid="8241153880150866635">"Cela comprend la mémoire cache et d\'autres fichiers temporaires nécessaires à votre système d\'exploitation. Vous pouvez constater des changements dans la quantité d\'espace de stockage utilisée au fil du temps."</string>
@@ -1441,10 +1442,10 @@
<string name="storage_wizard_format_progress_body" msgid="1044024044955390417">"Ne retirez pas <xliff:g id="NAME">^1</xliff:g> durant le formatage."</string>
<string name="storage_wizard_ready_title" msgid="3631022511474086605">"<xliff:g id="NAME">^1</xliff:g> formatée"</string>
<string name="storage_wizard_move_confirm_title" msgid="6812469630804101590">"Déplacer <xliff:g id="APP">^1</xliff:g>"</string>
- <string name="storage_wizard_move_confirm_body" msgid="1713022828842263574">"Le déplacement de l\'application « <xliff:g id="APP">^1</xliff:g> » et des données correspondantes vers « <xliff:g id="NAME_0">^2</xliff:g> » ne prend que quelques minutes. Vous ne pourrez pas utiliser l\'application tant que l\'opération n\'est pas terminée. \n\nNe retirez pas la mémoire de stockage « <xliff:g id="NAME_1">^2</xliff:g> » pendant le déplacement."</string>
+ <string name="storage_wizard_move_confirm_body" msgid="1713022828842263574">"Le déplacement de l\'appli « <xliff:g id="APP">^1</xliff:g> » et des données correspondantes vers « <xliff:g id="NAME_0">^2</xliff:g> » ne prend que quelques minutes. Vous ne pourrez pas utiliser l\'appli tant que l\'opération n\'est pas terminée. \n\nNe retirez pas la mémoire de stockage « <xliff:g id="NAME_1">^2</xliff:g> » pendant le déplacement."</string>
<string name="storage_wizard_move_unlock" msgid="14651384927767749">"Pour déplacer des données, vous devez déverrouiller l\'utilisateur <xliff:g id="APP">^1</xliff:g>."</string>
<string name="storage_wizard_move_progress_title" msgid="3912406225614672391">"Déplacement de <xliff:g id="APP">^1</xliff:g> en cours..."</string>
- <string name="storage_wizard_move_progress_body" msgid="2396714553394935094">"Ne retirez pas la mémoire de stockage « <xliff:g id="NAME">^1</xliff:g> » pendant le déplacement. \n\nL\'application « <xliff:g id="APP">^2</xliff:g> » ne sera pas disponible tant que l\'opération n\'est pas terminée."</string>
+ <string name="storage_wizard_move_progress_body" msgid="2396714553394935094">"Ne retirez pas la mémoire de stockage « <xliff:g id="NAME">^1</xliff:g> » pendant le déplacement. \n\nL\'appli « <xliff:g id="APP">^2</xliff:g> » ne sera pas disponible tant que l\'opération n\'est pas terminée."</string>
<string name="storage_wizard_init_v2_title" msgid="2538630338392381113">"Comment utiliserez-vous ce périphérique <xliff:g id="NAME">^1</xliff:g>?"</string>
<string name="storage_wizard_init_v2_or" msgid="5558706089661158026">"ou"</string>
<string name="storage_wizard_init_v2_external_title" msgid="2786416384217054112">"Formater la carte SD en tant que mémoire externe"</string>
@@ -1452,18 +1453,18 @@
<string name="storage_wizard_init_v2_external_action" msgid="6140058734875839081">"Formater"</string>
<string name="storage_wizard_init_v2_later" msgid="5366815913892609285">"Configurer plus tard"</string>
<string name="storage_wizard_format_confirm_v2_title" msgid="6294104100437326067">"Formater cette <xliff:g id="NAME">^1</xliff:g>?"</string>
- <string name="storage_wizard_format_confirm_v2_body" msgid="635958708974709506">"Cette <xliff:g id="NAME_0">^1</xliff:g> doit être formatée pour stocker des applications et des fichiers. \n\nLe formatage effacera le contenu existant de la <xliff:g id="NAME_1">^2</xliff:g>. Pour éviter de perdre votre contenu, sauvegardez-le sur une autre <xliff:g id="NAME_2">^3</xliff:g> ou un autre appareil."</string>
+ <string name="storage_wizard_format_confirm_v2_body" msgid="635958708974709506">"Cette <xliff:g id="NAME_0">^1</xliff:g> doit être formatée pour stocker des applis et des fichiers. \n\nLe formatage effacera le contenu existant de la <xliff:g id="NAME_1">^2</xliff:g>. Pour éviter de perdre votre contenu, sauvegardez-le sur une autre <xliff:g id="NAME_2">^3</xliff:g> ou un autre appareil."</string>
<string name="storage_wizard_format_confirm_v2_body_external" msgid="5810296966099830035">"Vous devez formater cette <xliff:g id="NAME_0">^1</xliff:g> pour pouvoir y stocker des photos, des vidéos, de la musique, et plus encore. \n\nLe formatage supprimera le contenu existant de la <xliff:g id="NAME_1">^2</xliff:g>. Pour éviter de perdre votre contenu, sauvegardez-le sur une autre <xliff:g id="NAME_2">^3</xliff:g> ou un autre appareil."</string>
<string name="storage_wizard_format_confirm_v2_action" msgid="5718254101386377126">"Formater <xliff:g id="NAME">^1</xliff:g>"</string>
<string name="storage_wizard_migrate_v2_title" msgid="3471564531564756698">"Déplacer le contenu vers <xliff:g id="NAME">^1</xliff:g>?"</string>
<string name="storage_wizard_migrate_v2_checklist" msgid="2618258869444553060">"Pendant le déplacement :"</string>
<string name="storage_wizard_migrate_v2_checklist_media" msgid="5867134681730723744">"Ne retirez pas le périphérique <xliff:g id="NAME">^1</xliff:g>"</string>
- <string name="storage_wizard_migrate_v2_checklist_apps" msgid="1882077445750580783">"Certaines applications ne fonctionneront pas"</string>
+ <string name="storage_wizard_migrate_v2_checklist_apps" msgid="1882077445750580783">"Certaines applis ne fonctionneront pas"</string>
<string name="storage_wizard_migrate_v2_now" msgid="3341460117088026966">"Déplacer le contenu"</string>
<string name="storage_wizard_migrate_v2_later" msgid="6067756122853315642">"Déplacer le contenu plus tard"</string>
<string name="storage_wizard_migrate_progress_v2_title" msgid="8791318509516968103">"Déplacement du contenu en cours…"</string>
<string name="storage_wizard_slow_v2_title" msgid="3760766921170980221">"Périphérique <xliff:g id="NAME">^1</xliff:g> lent"</string>
- <string name="storage_wizard_slow_v2_body" msgid="7604252106419016929">"Vous pouvez toujours utiliser le périphérique <xliff:g id="NAME_0">^1</xliff:g>, mais il peut être lent. \n\nLes applications stockées sur le périphérique <xliff:g id="NAME_1">^2</xliff:g> peuvent ne pas fonctionner correctement et les transferts de contenu peuvent prendre beaucoup de temps. \n\nEssayez d\'utiliser un autre périphérique <xliff:g id="NAME_2">^3</xliff:g>, ou utilisez plutôt le périphérique <xliff:g id="NAME_3">^4</xliff:g> comme mémoire de stockage externe."</string>
+ <string name="storage_wizard_slow_v2_body" msgid="7604252106419016929">"Vous pouvez toujours utiliser le périphérique <xliff:g id="NAME_0">^1</xliff:g>, mais il peut être lent. \n\nLes applis stockées sur le périphérique <xliff:g id="NAME_1">^2</xliff:g> peuvent ne pas fonctionner correctement et les transferts de contenu peuvent prendre beaucoup de temps. \n\nEssayez d\'utiliser un autre périphérique <xliff:g id="NAME_2">^3</xliff:g>, ou utilisez plutôt le périphérique <xliff:g id="NAME_3">^4</xliff:g> comme mémoire de stockage externe."</string>
<string name="storage_wizard_slow_v2_start_over" msgid="1806852287668077536">"Recommencer"</string>
<string name="storage_wizard_slow_v2_continue" msgid="7469713755893007901">"Continuer"</string>
<string name="storage_wizard_ready_v2_external_body" msgid="7688457485389886923">"Vous pouvez commencer à utiliser votre <xliff:g id="NAME">^1</xliff:g>"</string>
@@ -1545,8 +1546,8 @@
<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="6592404057237813989">"Tous vos renseignements personnels, y compris les applications et les cartes eSIM téléchargées, seront supprimés. Vous ne pouvez pas annuler cette action."</string>
+ <string name="main_clear_final_desc" msgid="5800877928569039580">"Tous vos renseignements personnels et les applis téléchargées seront supprimés. Vous ne pouvez pas annuler cette action."</string>
+ <string name="main_clear_final_desc_esim" msgid="6592404057237813989">"Tous vos renseignements personnels, y compris les applis et les cartes eSIM téléchargées, seront supprimés. Vous ne pouvez pas annuler cette action."</string>
<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>
@@ -1582,14 +1583,14 @@
<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 de connexion par Ethernet"</string>
- <string name="tethering_footer_info" msgid="6782375845587483281">"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 cellulaire. Des 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_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. Des 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_footer_info" msgid="6782375845587483281">"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 cellulaire. Des applis peuvent aussi créer un point d\'accès sans fil pour partager du contenu avec d\'autres appareils à proximité."</string>
+ <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. Des applis 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="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>
- <string name="sms_change_default_no_previous_dialog_text" msgid="6215622785087181275">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> comme application de messagerie texte?"</string>
+ <string name="sms_application_title" msgid="4791107002724108809">"Appli de messagerie texte"</string>
+ <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Modifier l\'appli 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 appli de messagerie texte?"</string>
+ <string name="sms_change_default_no_previous_dialog_text" msgid="6215622785087181275">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> comme appli de messagerie texte?"</string>
<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>
@@ -1598,18 +1599,18 @@
<string name="private_profile_location_switch_title" msgid="4127119143109855789">"Emplacement de l\'Espace privé"</string>
<string name="location_app_level_permissions" msgid="907206607664629759">"Autor. localisation des applis"</string>
<string name="location_app_permission_summary_location_off" msgid="2711822936853500335">"Le signalement de position est désactivé"</string>
- <string name="location_app_permission_summary_location_on" msgid="7552095451731948984">"{count,plural, =1{# application sur {total} a accès à la position}one{# application sur {total} a accès à la position}other{# applications sur {total} ont accès à la position}}"</string>
+ <string name="location_app_permission_summary_location_on" msgid="7552095451731948984">"{count,plural, =1{# appli sur {total} a accès à la position}one{# appli sur {total} a accès à la position}other{# applis sur {total} ont accès à la position}}"</string>
<string name="location_category_recent_location_access" msgid="2558063524482178146">"Accès récents"</string>
<string name="location_recent_location_access_see_all" msgid="4203102419355323325">"Tout afficher"</string>
<string name="location_recent_location_access_view_details" msgid="5803264082558504544">"Afficher les détails"</string>
- <string name="location_no_recent_apps" msgid="6814206631456177033">"Aucune application n\'a récemment demandé l\'accès à votre position"</string>
- <string name="location_no_recent_accesses" msgid="6031735777805464247">"Aucune application n\'a récemment accédé à la position"</string>
+ <string name="location_no_recent_apps" msgid="6814206631456177033">"Aucune appli n\'a récemment demandé l\'accès à votre position"</string>
+ <string name="location_no_recent_accesses" msgid="6031735777805464247">"Aucune appli n\'a récemment accédé à la position"</string>
<string name="location_high_battery_use" msgid="4277318891200626524">"Forte utilisation de la pile"</string>
<string name="location_low_battery_use" msgid="5218950289737996431">"Faible utilisation de la pile"</string>
<string name="location_scanning_wifi_always_scanning_title" msgid="5004781272733434794">"Recherche de réseaux Wi-Fi"</string>
- <string name="location_scanning_wifi_always_scanning_description" msgid="6236055656376931306">"Autoriser les applications et les services à 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="location_scanning_wifi_always_scanning_description" msgid="6236055656376931306">"Autoriser les applis et les services à 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="location_scanning_bluetooth_always_scanning_title" msgid="1809309545730215891">"Recherche d\'appareils Bluetooth"</string>
- <string name="location_scanning_bluetooth_always_scanning_description" msgid="5362988856388462841">"Autoriser les applications et les services à rechercher les appareils à proximité en tout temps, même lorsque le Bluetooth 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="location_scanning_bluetooth_always_scanning_description" msgid="5362988856388462841">"Autoriser les applis et les services à rechercher les appareils à proximité en tout temps, même lorsque le Bluetooth 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="location_services_preference_title" msgid="604317859531782159">"Services de localisation"</string>
<string name="location_services_screen_title" msgid="5640002489976602476">"Services de localisation"</string>
<string name="location_time_zone_detection_toggle_title" msgid="6478751613645015287">"Utiliser ma position"</string>
@@ -1741,7 +1742,7 @@
<string name="lockpattern_settings_change_lock_pattern" msgid="7614155083815661347">"Modifier le schéma"</string>
<string name="lockpattern_settings_help_how_to_record" msgid="2093801939046625774">"Comment dessiner un schéma de déverrouillage :"</string>
<string name="lockpattern_too_many_failed_confirmation_attempts" msgid="7891484005551794824">"Trop de tentatives incorrectes. Réessayez dans <xliff:g id="NUMBER">%d</xliff:g> secondes."</string>
- <string name="activity_not_found" msgid="5464331414465894254">"L\'application n\'est pas installée sur votre téléphone."</string>
+ <string name="activity_not_found" msgid="5464331414465894254">"L\'appli n\'est pas installée sur votre téléphone."</string>
<string name="lock_settings_profile_title" msgid="103605580492566086">"Sécurité du profil professionnel"</string>
<string name="lock_settings_profile_screen_lock_title" msgid="3776275029218681815">"Verrouillage de l\'écran du profil professionnel"</string>
<string name="lock_settings_profile_unification_title" msgid="5777961097706546513">"Utiliser un seul mode de verrouillage"</string>
@@ -1752,18 +1753,18 @@
<string name="lock_settings_profile_unification_dialog_confirm" msgid="6276915393736137843">"Utiliser un seul mode de verrouillage"</string>
<string name="lock_settings_profile_unification_dialog_uncompliant_confirm" msgid="8509287115116369677">"Utiliser un seul mode de verrouillage"</string>
<string name="lock_settings_profile_unified_summary" msgid="777095092175037385">"Identique au verrouillage de l\'écran de l\'appareil"</string>
- <string name="manageapplications_settings_title" msgid="9198876415524237657">"Gérer les applications"</string>
- <string name="applications_settings" msgid="1941993743933425622">"Détails de l\'application"</string>
- <string name="applications_settings_header" msgid="3154670675856048015">"Paramètres de l\'application"</string>
+ <string name="manageapplications_settings_title" msgid="9198876415524237657">"Gérer les applis"</string>
+ <string name="applications_settings" msgid="1941993743933425622">"Détails de l\'appli"</string>
+ <string name="applications_settings_header" msgid="3154670675856048015">"Paramètres de l\'appli"</string>
<string name="install_applications" msgid="3921609656584369901">"Sources inconnues"</string>
<string name="install_applications_title" msgid="7890233747559108106">"Autoriser toutes sources appli"</string>
- <string name="recent_app_category_title" msgid="189758417804427533">"Applications récemment ouvertes"</string>
- <string name="see_all_apps_title" msgid="1650653853942381797">"{count,plural, =1{Afficher l\'unique application}one{Afficher l\'unique (#) application}other{Afficher les # applications}}"</string>
+ <string name="recent_app_category_title" msgid="189758417804427533">"Applis récemment ouvertes"</string>
+ <string name="see_all_apps_title" msgid="1650653853942381797">"{count,plural, =1{Afficher l\'unique appli}one{Afficher l\'unique (#) appli}other{Afficher les # applis}}"</string>
<string name="forgot_password_title" msgid="3967873480875239885">"Contacter l\'administrateur informatique"</string>
<string name="forgot_password_text" msgid="2583194470767613163">"Il peut vous aider à réinitialiser votre NIP, votre schéma ou votre mot de passe"</string>
<string name="advanced_settings" msgid="2368905204839169094">"Paramètres avancés"</string>
<string name="advanced_settings_summary" msgid="1823765348195530035">"Activer d\'autres paramètres"</string>
- <string name="application_info_label" msgid="1015706497694165866">"Détails de l\'application"</string>
+ <string name="application_info_label" msgid="1015706497694165866">"Détails de l\'appli"</string>
<string name="storage_label" msgid="2522307545547515733">"Stockage"</string>
<string name="auto_launch_label" msgid="4069860409309364872">"Ouvrir par défaut"</string>
<string name="auto_launch_label_generic" msgid="5033137408273064599">"Valeurs par défaut"</string>
@@ -1783,8 +1784,8 @@
<string name="restoring_step_three" msgid="3712883580876329811">"Restauration en cours.."</string>
<string name="restoring_step_four" msgid="8966846882470446209">"Restauration en cours..."</string>
<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>
+ <string name="application_size_label" msgid="6407051020651716729">"Taille de l\'appli"</string>
+ <string name="external_code_size_label" msgid="7375146402660973743">"Appli sur USB"</string>
<string name="data_size_label" msgid="7814478940141255234">"Données de l\'utilisateur"</string>
<string name="uninstall_text" msgid="315764653029060126">"Désinstaller"</string>
<string name="uninstall_all_users_text" msgid="5924715251087176474">"Uninstall for all users"</string>
@@ -1794,13 +1795,13 @@
<string name="clear_user_data_text" msgid="6773186434260397947">"Effacer l\'espace de stockage"</string>
<string name="app_factory_reset" msgid="8974044931667015201">"Désinstaller mises à jour"</string>
<string name="app_restricted_settings_lockscreen_title" msgid="5993061278264872648">"Autoriser les paramètres restreints"</string>
- <string name="auto_launch_enable_text" msgid="8912714475823807798">"Certaines activités que vous avez sélectionnées s\'ouvrent dans cette application par défaut."</string>
- <string name="always_allow_bind_appwidgets_text" msgid="2069415023986858324">"Vous avez choisi de permettre à cette application de créer des widgets et d\'accéder à leurs données."</string>
+ <string name="auto_launch_enable_text" msgid="8912714475823807798">"Certaines activités que vous avez sélectionnées s\'ouvrent dans cette appli par défaut."</string>
+ <string name="always_allow_bind_appwidgets_text" msgid="2069415023986858324">"Vous avez choisi de permettre à cette appli de créer des widgets et d\'accéder à leurs données."</string>
<string name="auto_launch_disable_text" msgid="502648841250936209">"Aucun paramètre par défaut défini"</string>
<string name="clear_activities" msgid="488089228657585700">"Effacer les préférences par défaut"</string>
- <string name="screen_compatibility_text" msgid="5915767835411020274">"Cette application n\'est peut-être pas adaptée à votre écran. Vous pouvez modifier les paramètres d\'ajustement ici."</string>
+ <string name="screen_compatibility_text" msgid="5915767835411020274">"Cette appli n\'est peut-être pas adaptée à votre écran. Vous pouvez modifier les paramètres d\'ajustement ici."</string>
<string name="ask_compatibility" msgid="8388397595148476565">"Demander au moment du lancement"</string>
- <string name="enable_compatibility" msgid="1163387233622859712">"Mettre l\'application à l\'échelle"</string>
+ <string name="enable_compatibility" msgid="1163387233622859712">"Mettre l\'appli à l\'échelle"</string>
<string name="unknown" msgid="8192160131923461175">"Inconnu"</string>
<string name="sort_order_alpha" msgid="3400680865280266582">"Trier par nom"</string>
<string name="sort_order_size" msgid="7731928486199737223">"Trier par taille"</string>
@@ -1808,29 +1809,29 @@
<string name="sort_order_frequent_notification" msgid="4063700985742284794">"Les plus fréquentes"</string>
<string name="show_running_services" msgid="8666008279959853318">"Afficher les services en cours"</string>
<string name="show_background_processes" msgid="5682856012453562151">"Afficher processus en cache"</string>
- <string name="default_emergency_app" msgid="1929974800666613803">"Application d\'urgence"</string>
+ <string name="default_emergency_app" msgid="1929974800666613803">"Appli d\'urgence"</string>
<string name="reset_app_preferences" msgid="8861758340732716573">"Réinitialiser préférences applis"</string>
<string name="reset_app_preferences_title" msgid="8935136792316050759">"Réinitialiser les préférences relatives aux applis?"</string>
- <string name="reset_app_preferences_desc" msgid="8550782670650158299">"Les préférences relatives aux éléments suivants seront réinitialisées :\n\n"<li>"Applications désactivées"</li>\n<li>"Notifications des applications désactivées"</li>\n<li>"Applications par défaut pour les actions"</li>\n<li>"Restrictions de données en arrière-plan pour les applications"</li>\n<li>"Toutes les restrictions d\'autorisations"</li>\n<li>"Paramètres d\'utilisation de la pile"</li>\n\n"Vous ne perdrez aucune donnée liée aux applications."</string>
+ <string name="reset_app_preferences_desc" msgid="8550782670650158299">"Les préférences relatives aux éléments suivants seront réinitialisées :\n\n"<li>"Applis désactivées"</li>\n<li>"Notifications des applis désactivées"</li>\n<li>"Applis par défaut pour les actions"</li>\n<li>"Restrictions de données en arrière-plan pour les applis"</li>\n<li>"Toutes les restrictions d\'autorisations"</li>\n<li>"Paramètres d\'utilisation de la pile"</li>\n\n"Vous ne perdrez aucune donnée liée aux applis."</string>
<string name="reset_app_preferences_button" msgid="2591318711372850058">"Réinitialiser applis"</string>
<string name="filter" msgid="9039576690686251462">"Filtre"</string>
<string name="filter_dlg_title" msgid="3086282431958601338">"Sélectionner les options du filtre"</string>
- <string name="filter_apps_all" msgid="5705421199299914620">"Toutes les applications"</string>
- <string name="filter_apps_disabled" msgid="5068011814871004105">"Applications désactivées"</string>
+ <string name="filter_apps_all" msgid="5705421199299914620">"Toutes les applis"</string>
+ <string name="filter_apps_disabled" msgid="5068011814871004105">"Applis désactivées"</string>
<string name="filter_apps_third_party" msgid="9049447784849114843">"Téléchargée"</string>
<string name="filter_apps_running" msgid="535465683273284141">"Diffusion en cours"</string>
<string name="not_installed" msgid="5074606858798519449">"Non installé pour cet utilisateur"</string>
<string name="installed" msgid="2837449358488825884">"Installée"</string>
- <string name="no_applications" msgid="985069304755391640">"Aucune application"</string>
+ <string name="no_applications" msgid="985069304755391640">"Aucune appli"</string>
<string name="internal_storage" msgid="999496851424448809">"Mémoire de stockage interne"</string>
<string name="recompute_size" msgid="1098091228370999128">"Calcul de la taille..."</string>
- <string name="clear_data_dlg_title" msgid="180446967743732410">"Supprimer les données de l\'application?"</string>
- <string name="clear_data_dlg_text" msgid="3440011276559762619">"Les données de cette application, y compris les fichiers et les paramètres, seront supprimées de cet appareil"</string>
+ <string name="clear_data_dlg_title" msgid="180446967743732410">"Supprimer les données de l\'appli?"</string>
+ <string name="clear_data_dlg_text" msgid="3440011276559762619">"Les données de cette appli, y compris les fichiers et les paramètres, seront supprimées de cet appareil"</string>
<string name="dlg_ok" msgid="1421350367857960997">"OK"</string>
<string name="dlg_cancel" msgid="5164705061530774899">"Annuler"</string>
<string name="dlg_delete" msgid="1790919205039397659">"Supprimer"</string>
- <string name="app_not_found_dlg_text" msgid="8634675268730513704">"L\'application ne figure pas dans la liste des applications installées."</string>
- <string name="clear_failed_dlg_text" msgid="6866741916836125732">"Impossible de supprimer l\'espace de stockage pour l\'application."</string>
+ <string name="app_not_found_dlg_text" msgid="8634675268730513704">"L\'appli ne figure pas dans la liste des applis installées."</string>
+ <string name="clear_failed_dlg_text" msgid="6866741916836125732">"Impossible de supprimer l\'espace de stockage pour l\'appli."</string>
<string name="computing_size" msgid="4915310659841174866">"Traitement..."</string>
<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>
@@ -1841,17 +1842,17 @@
<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>
+ <string name="does_not_exist" msgid="6499163879348776120">"L\'appli n\'existe pas."</string>
<string name="invalid_location" msgid="8013853455355520557">"L\'emplacement d\'installation n\'est pas valide."</string>
<string name="system_package" msgid="7559476279008519360">"Les mises à jour du système ne peuvent pas être installées sur des supports externes."</string>
- <string name="move_error_device_admin" msgid="1561502976834303626">"Les applications d\'administration d\'appareils ne peuvent pas être installées sur un support externe"</string>
+ <string name="move_error_device_admin" msgid="1561502976834303626">"Les applis d\'administration d\'appareils ne peuvent pas être installées sur un support externe"</string>
<string name="force_stop_dlg_title" msgid="86745852555490146">"Forcer l\'arrêt?"</string>
- <string name="force_stop_dlg_text" msgid="1527286468544457368">"Si vous forcez l\'arrêt d\'une application, son fonctionnement peut en être affecté."</string>
- <string name="app_disable_dlg_positive" msgid="1414218905322009505">"Désactiver l\'application"</string>
- <string name="app_disable_dlg_text" msgid="2449382902751908916">"Si vous désactivez cette application, Android et d\'autres applications risquent de ne plus fonctionner correctement. Gardez à l\'esprit que vous ne pouvez pas supprimer cette application, étant donné qu\'elle était préinstallée sur votre appareil. En la désactivant, elle ne sera plus active et elle sera masquée sur votre appareil."</string>
- <string name="app_install_details_group_title" msgid="1172114479073704677">"Boutique d\'applications"</string>
- <string name="app_install_details_title" msgid="7783556181897142187">"Détails de l\'application"</string>
- <string name="app_install_details_summary" msgid="2013043219249992373">"Source de l\'application : <xliff:g id="APP_STORE">%1$s</xliff:g>"</string>
+ <string name="force_stop_dlg_text" msgid="1527286468544457368">"Si vous forcez l\'arrêt d\'une appli, son fonctionnement peut en être affecté."</string>
+ <string name="app_disable_dlg_positive" msgid="1414218905322009505">"Désactiver l\'appli"</string>
+ <string name="app_disable_dlg_text" msgid="2449382902751908916">"Si vous désactivez cette appli, Android et d\'autres applis risquent de ne plus fonctionner correctement. Gardez à l\'esprit que vous ne pouvez pas supprimer cette appli, étant donné qu\'elle était préinstallée sur votre appareil. En la désactivant, elle ne sera plus active et elle sera masquée sur votre appareil."</string>
+ <string name="app_install_details_group_title" msgid="1172114479073704677">"Boutique d\'applis"</string>
+ <string name="app_install_details_title" msgid="7783556181897142187">"Détails de l\'appli"</string>
+ <string name="app_install_details_summary" msgid="2013043219249992373">"Source de l\'appli : <xliff:g id="APP_STORE">%1$s</xliff:g>"</string>
<string name="app_install_details_different_initiating_package_summary" msgid="6093306593167176688">"Appli installée à partir de <xliff:g id="APP_STORE1">%1$s</xliff:g> (par le biais de <xliff:g id="APP_STORE2">%2$s</xliff:g>)"</string>
<string name="instant_app_details_summary" msgid="417197491598208216">"Plus d\'information sur <xliff:g id="APP_STORE">%1$s</xliff:g>"</string>
<string name="app_ops_running" msgid="6127474473137428721">"En cours d\'exécution"</string>
@@ -1860,7 +1861,7 @@
<string name="service_restarting" msgid="5104563288155809226">"Redémarrage"</string>
<string name="cached" msgid="5379485147573438201">"Processus d\'arrière-plan en cache"</string>
<string name="no_running_services" msgid="9079738069349859373">"Aucun service en cours"</string>
- <string name="service_started_by_app" msgid="6845028506417670179">"Démarré par l\'application"</string>
+ <string name="service_started_by_app" msgid="6845028506417670179">"Démarré par l\'appli"</string>
<!-- no translation found for service_client_name (2210898622981598861) -->
<skip />
<string name="service_background_processes" msgid="2800539421534521948">"Libre: <xliff:g id="MEMORY">%1$s</xliff:g>"</string>
@@ -1875,22 +1876,22 @@
<string name="running_processes_item_description_p_s" msgid="8957061449107822282">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> processus et <xliff:g id="NUMSERVICES">%2$d</xliff:g> service"</string>
<string name="running_processes_item_description_p_p" msgid="3292999232897469679">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> processus et <xliff:g id="NUMSERVICES">%2$d</xliff:g> services"</string>
<string name="running_processes_header_title" msgid="558961782589967366">"Mémoire de l\'appareil"</string>
- <string name="running_processes_header_footer" msgid="2726092156680487584">"Utilisation de la mémoire vive par l\'application"</string>
+ <string name="running_processes_header_footer" msgid="2726092156680487584">"Utilisation de la mémoire vive par l\'appli"</string>
<string name="running_processes_header_system_prefix" msgid="8819527769608555124">"Système"</string>
- <string name="running_processes_header_apps_prefix" msgid="4151874328324238133">"Applications"</string>
+ <string name="running_processes_header_apps_prefix" msgid="4151874328324238133">"Applis"</string>
<string name="running_processes_header_free_prefix" msgid="4271100378295864738">"Disponible"</string>
<string name="running_processes_header_used_prefix" msgid="5205762402234243007">"Utilisée"</string>
<string name="running_processes_header_cached_prefix" msgid="839132595831993521">"En cache"</string>
<string name="running_processes_header_ram" msgid="3014991380467004685">"<xliff:g id="RAM_0">%1$s</xliff:g> de mémoire vive"</string>
- <string name="runningservicedetails_settings_title" msgid="1057845389092757121">"Application en cours d\'exécution"</string>
+ <string name="runningservicedetails_settings_title" msgid="1057845389092757121">"Appli en cours d\'exécution"</string>
<string name="no_services" msgid="3898812785511572899">"Inactif"</string>
<string name="runningservicedetails_services_title" msgid="11853795112787355">"Services"</string>
<string name="runningservicedetails_processes_title" msgid="5292271587797234038">"Processus"</string>
<string name="service_stop" msgid="5712522600201308795">"Arrêter"</string>
<string name="service_manage" msgid="3896322986828332075">"Paramètres"</string>
- <string name="service_stop_description" msgid="6327742632400026677">"Ce service a été démarré par son application. L\'application peut échouer si vous l\'arrêtez."</string>
- <string name="heavy_weight_stop_description" msgid="3086419998820881290">"Impossible d\'arrêter cette application en toute sécurité. Si vous l\'arrêtez, vous risquez de perdre une partie du travail en cours."</string>
- <string name="background_process_stop_description" msgid="4792038933517438037">"Ceci est un ancien processus d\'application qui peut toujours être exécuté en cas de besoin. Il n\'existe généralement aucune raison de l\'arrêter."</string>
+ <string name="service_stop_description" msgid="6327742632400026677">"Ce service a été démarré par son appli. L\'appli peut échouer si vous l\'arrêtez."</string>
+ <string name="heavy_weight_stop_description" msgid="3086419998820881290">"Impossible d\'arrêter cette appli en toute sécurité. Si vous l\'arrêtez, vous risquez de perdre une partie du travail en cours."</string>
+ <string name="background_process_stop_description" msgid="4792038933517438037">"Ceci est un ancien processus d\'appli qui peut toujours être exécuté en cas de besoin. Il n\'existe généralement aucune raison de l\'arrêter."</string>
<string name="service_manage_description" msgid="6615788996428486121">"En cours d\'utilisation : <xliff:g id="CLIENT_NAME">%1$s</xliff:g>. Touchez Paramètres pour contrôler ce client."</string>
<string name="main_running_process_description" msgid="6685973937935027773">"Processus principal en cours d\'utilisation."</string>
<string name="process_service_in_use_description" msgid="4210957264507014878">"Le service <xliff:g id="COMP_NAME">%1$s</xliff:g> est actuellement utilisé."</string>
@@ -1916,7 +1917,7 @@
<string name="auto_punctuate_summary" msgid="3549190848611386748">"Appuyez deux fois sur la touche Espace pour insérer « . »"</string>
<string name="show_password" msgid="7101900779571040117">"Afficher les mots de passe"</string>
<string name="show_password_summary" msgid="9025960283785111619">"Les caractères s\'affichent brièvement pendant la saisie"</string>
- <string name="spellchecker_security_warning" msgid="2016059050608271820">"Ce correcteur orthographique peut recueillir l\'ensemble du texte saisi, y compris des données personnelles comme des mots de passe et des numéros de carte de paiement. Il provient de l\'application <xliff:g id="SPELLCHECKER_APPLICATION_NAME">%1$s</xliff:g>. Utiliser ce correcteur orthographique?"</string>
+ <string name="spellchecker_security_warning" msgid="2016059050608271820">"Ce correcteur orthographique peut recueillir l\'ensemble du texte saisi, y compris des données personnelles comme des mots de passe et des numéros de carte de paiement. Il provient de l\'appli <xliff:g id="SPELLCHECKER_APPLICATION_NAME">%1$s</xliff:g>. Utiliser ce correcteur orthographique?"</string>
<string name="spellchecker_quick_settings" msgid="6449414356743946577">"Paramètres"</string>
<string name="spellchecker_language" msgid="8905487366580285282">"Langue"</string>
<string name="keyboard_and_input_methods_category" msgid="5296847777802891649">"Claviers"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilité"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Clavier physique"</string>
- <string name="show_ime" msgid="4334255501724746849">"Utiliser le clavier à l\'écran"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Afficher lorsque le clavier physique est activé"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Touches non répétées"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Le clavier ignore les appuis répétés rapidement sur les touches de la même clé dans un délai de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Touches lentes"</string>
@@ -1966,11 +1965,11 @@
<string name="gesture_summary_go_home" msgid="6409031586904205741">"Balayez votre pavé tactile vers le haut avec trois doigts"</string>
<string name="gesture_title_go_back" msgid="6619462058488419802">"Retour"</string>
<string name="gesture_summary_go_back" msgid="4981604277892236888">"Balayez l\'écran à gauche ou à droite avec trois doigts"</string>
- <string name="gesture_title_recent_apps" msgid="6082688963233208761">"Afficher les applications récentes"</string>
+ <string name="gesture_title_recent_apps" msgid="6082688963233208761">"Afficher les applis récentes"</string>
<string name="gesture_summary_recent_apps" msgid="6643179135202417509">"Balayez vers le haut avec trois doigts, maintenez et relâchez"</string>
<string name="gesture_title_notifications" msgid="791717222472350194">"Afficher notif. et param. rapides"</string>
<string name="gesture_summary_notifications" msgid="8419514601638387255">"Balayez votre écran d\'accueil vers le bas avec trois doigts"</string>
- <string name="gesture_title_switch_apps" msgid="5840994412037872157">"Changer d\'application"</string>
+ <string name="gesture_title_switch_apps" msgid="5840994412037872157">"Changer d\'appli"</string>
<string name="gesture_summary_switch_apps" msgid="6842648062151413042">"Balayez vers la gauche ou vers la droite avec quatre doigts"</string>
<string name="gesture_button_skip" msgid="5174842083451193213">"Ignorer"</string>
<string name="gesture_button_next" msgid="695288092704187356">"Suivant"</string>
@@ -1980,11 +1979,11 @@
<string name="trackpad_go_back_summary" msgid="4201901101085902768">"Balayez vers la gauche ou vers la droite avec trois doigts"</string>
<string name="trackpad_go_home_title" msgid="2146525662148291552">"Retour à la page d\'accueil"</string>
<string name="trackpad_go_home_summary" msgid="2222744701528360887">"Balayez l\'écran vers le haut avec trois doigts"</string>
- <string name="trackpad_recent_apps_title" msgid="8195970908411585445">"Applications récentes"</string>
+ <string name="trackpad_recent_apps_title" msgid="8195970908411585445">"Applis récentes"</string>
<string name="trackpad_recent_apps_summary" msgid="2685092851677573794">"Balayez vers le haut avec trois doigts, puis maintenez-les"</string>
<string name="trackpad_notifications_title" msgid="3521663305043747880">"Notifications"</string>
<string name="trackpad_notifications_summary" msgid="7663647367648690040">"Balayez l\'écran vers le bas avec trois doigts"</string>
- <string name="trackpad_switch_apps_title" msgid="7342032935377284039">"Changer d\'application"</string>
+ <string name="trackpad_switch_apps_title" msgid="7342032935377284039">"Changer d\'appli"</string>
<string name="trackpad_switch_apps_summary" msgid="9193942041912927440">"Balayez vers la gauche ou vers la droite avec quatre doigts"</string>
<string name="modifier_keys_settings" msgid="2537108435032034683">"Touches de modification"</string>
<string name="modifier_keys_settings_summary" msgid="6933143361657444436">"Modifier le comportement des touches"</string>
@@ -2019,7 +2018,7 @@
<string name="keyboard_layout_picker_category_title" msgid="2369473692906329772">"Dispositions du clavier physique"</string>
<string name="user_dict_settings_title" msgid="680410651924276991">"Dictionnaire personnel"</string>
<string name="user_dict_settings_for_work_title" msgid="1245315720684961770">"Dictionnaire personnel pour le travail"</string>
- <string name="user_dict_settings_summary" msgid="4939694372338975081">"Ajoutez des mots à utiliser dans des applications comme un correcteur orthographique"</string>
+ <string name="user_dict_settings_summary" msgid="4939694372338975081">"Ajoutez des mots à utiliser dans des applis comme un correcteur orthographique"</string>
<string name="user_dict_settings_add_menu_title" msgid="8046882347281382968">"Add"</string>
<string name="user_dict_settings_add_dialog_title" msgid="3485845465134083084">"Ajouter au dictionnaire"</string>
<string name="user_dict_settings_add_screen_title" msgid="1866408024073475379">"Expression"</string>
@@ -2045,12 +2044,12 @@
<string name="gadget_picker_title" msgid="7615902510050731400">"Choisir un gadget"</string>
<string name="widget_picker_title" msgid="7641298325488989676">"Choisir un widget"</string>
<string name="allow_bind_app_widget_activity_allow_bind_title" msgid="3537968409832846255">"Créer un widget et autoriser l\'accès?"</string>
- <string name="allow_bind_app_widget_activity_allow_bind" msgid="5825298768068148804">"Une fois le widget créé, l\'application peut accéder à tout ce qui est affiché.\n\nApplication : <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>\nWidget : <xliff:g id="WIDGET_LABEL">%2$s</xliff:g>\n"</string>
+ <string name="allow_bind_app_widget_activity_allow_bind" msgid="5825298768068148804">"Une fois le widget créé, l\'appli peut accéder à tout ce qui est affiché.\n\nAppli : <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>\nWidget : <xliff:g id="WIDGET_LABEL">%2$s</xliff:g>\n"</string>
<string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7268758525344468364">"Toujours autoriser <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> à créer des widgets et accéder à leurs données"</string>
<string name="testing_usage_stats" msgid="4660643799010906365">"Données statistiques"</string>
<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="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Trier par nom d\'appli"</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>
@@ -2082,7 +2081,7 @@
<string name="interaction_control_category_title" msgid="2696474616743882372">"Commandes d\'interaction"</string>
<string name="accessibility_tap_assistance_title" msgid="1058913033421048284">"Commandes du minutage"</string>
<string name="accessibility_system_controls_title" msgid="6403287349518987624">"Commandes du système"</string>
- <string name="user_installed_services_category_title" msgid="2639470729311439731">"Applications téléchargées"</string>
+ <string name="user_installed_services_category_title" msgid="2639470729311439731">"Applis téléchargées"</string>
<string name="experimental_category_title" msgid="898904396646344152">"Fonctions expérimentales"</string>
<string name="feature_flags_dashboard_title" msgid="348990373716658289">"Indicateurs de fonctionnalité"</string>
<string name="bt_stack_log_level" msgid="6527899271926969296">"Activer le journal de la pile du Bluetooth"</string>
@@ -2122,7 +2121,7 @@
<string name="accessibility_magnification_mode_dialog_option_switch" msgid="561043521011229424">"Passer du mode plein écran au mode écran partiel"</string>
<string name="accessibility_magnification_area_settings_mode_switch_summary" msgid="2885238806099080966">"Touchez le bouton du commutateur pour passer d\'une option à l\'autre"</string>
<string name="accessibility_magnification_switch_shortcut_title" msgid="3671432048806533079">"Passer au bouton d\'accessibilité?"</string>
- <string name="accessibility_magnification_switch_shortcut_message" msgid="7718653917415163833">"L\'utilisation du triple toucher pour agrandir une partie de l\'écran a pour effet de retarder l\'entrée et les autres actions.\n\nLe bouton d\'accessibilité flotte sur votre écran par-dessus les autres applications. Touchez-le pour l\'agrandir."</string>
+ <string name="accessibility_magnification_switch_shortcut_message" msgid="7718653917415163833">"L\'utilisation du triple toucher pour agrandir une partie de l\'écran a pour effet de retarder l\'entrée et les autres actions.\n\nLe bouton d\'accessibilité flotte sur votre écran par-dessus les autres applis. Touchez-le pour l\'agrandir."</string>
<string name="accessibility_magnification_switch_shortcut_positive_button" msgid="2446942190957296957">"Passer au bouton d\'accessibilité"</string>
<string name="accessibility_magnification_switch_shortcut_negative_button" msgid="7115794462123071594">"Utiliser le triple toucher"</string>
<string name="accessibility_magnification_triple_tap_warning_title" msgid="8484669851397296597">"Cela peut ralentir votre clavier"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuer quand même"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuler"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Paramètres d\'agrandissement"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Bouger la Loupe avec un doigt"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Glissez un doigt pour vous déplacer sur l\'écran"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Déplacez la zone d\'agrand. en faisant glisser un doigt."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Déplacez la zone d\'agrand. en faisant glisser deux doigts."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Non disponible lorsque vous agrandissez seulement une partie de l\'écran"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Touchez un bouton pour zoomer"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zoomez rapidement pour agrandir le contenu"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Pour zoomer :</b><br/> {0,number,integer}. Utilisez le raccourci pour commencer l\'agrandissement<br/> {1,number,integer}. Touchez l\'écran<br/> {2,number,integer}. Faites glisser deux doigts pour naviguer dans l\'écran<br/> {3,number,integer}. Pincez l\'écran avec deux doigts pour ajuster le zoom<br/> {4,number,integer}. Utilisez le raccourci pour arrêter l\'agrandissement<br/><br/><b>Pour zoomer temporairement :</b><br/> {0,number,integer}. Assurez-vous que le type d\'agrandissement est défini à plein écran<br/> {1,number,integer}. Utilisez le raccourci pour commencer l\'agrandissement<br/> {2,number,integer}. Maintenez le doigt sur une zone de l\'écran<br/> {3,number,integer}. Faites glisser un doigt pour naviguer dans l\'écran<br/> {4,number,integer}. Levez le doigt pour arrêter l\'agrandissement"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Pour zoomer, procédez comme suit :</b><br/> {0,number,integer} Utilisez le raccourci pour commencer l\'agrandissement<br/> {1,number,integer}. Touchez l\'écran<br/> {2,number,integer}. Faites glisser deux doigts pour naviguer dans l\'écran<br/> {3,number,integer}. Pincez l\'écran avec deux doigts pour ajuster le zoom<br/> {4,number,integer}. Utilisez le raccourci pour arrêter l\'aggrandissement<br/><br/> Vous pouvez aussi zoomer temporairement et plus."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Pour zoomer, procédez comme suit :</b><br/> {0,number,integer} Utilisez le raccourci pour commencer l\'agrandissement<br/> {1,number,integer}. Touchez l\'écran<br/> {2,number,integer}. Faites glisser un ou deux doigts pour naviguer dans l\'écran<br/> {3,number,integer}. Pincez l\'écran avec deux doigts pour ajuster le zoom<br/> {4,number,integer}. Utilisez le raccourci pour arrêter l\'aggrandissement<br/><br/> Vous pouvez aussi zoomer temporairement et plus."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"When magnification is turned on, you can zoom in on your screen.\n\n"<b>"Pour effectuer un zoom,"</b>", activez cette fonction, puis touchez une zone de l\'écran.\n"<ul><li>"Glissez deux doigts ou plus sur l\'écran pour le faire défiler"</li>\n<li>"Pincez deux doigts ou plus pour ajuster le zoom"</li></ul>\n\n<b>"Pour zoomer temporairement l\'écran"</b>", touchez le bouton d\'accessibilité, puis maintenez le doigt sur ailleurs sur l\'écran.\n"<ul><li>"Glissez votre doigt sur l\'écran à l\'endroit désiré"</li>\n<li>"Relevez le doigt pour zoomer vers l\'arrière"</li></ul>\n\n"On ne peut pas zoomer sur le clavier ou la barre de navigation."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> sur <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Raccourci du bouton d\'accessibilité"</string>
@@ -2232,13 +2227,13 @@
<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="1141723096904904336">"<b>Pour commencer</b><br/> {0,number,integer}. Accédez aux paramètres d\'accessibilité<br/> {1,number,integer}. Sélectionnez une fonctionnalité et touchez le raccourci<br/> {2,number,integer}. Choisissez si vous voulez utiliser un bouton ou un geste pour accéder à la fonctionnalité<br/>"</string>
+ <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"<b>Pour commencer</b><br/> {0,number,integer}. Accédez aux paramètres d\'accessibilité.<br/> {1,number,integer}. Sélectionnez une fonctionnalité et touchez le raccourci.<br/> {2,number,integer}. Choisissez si vous voulez utiliser un bouton ou un geste pour accéder à la fonctionnalité.<br/>"</string>
<string name="accessibility_button_description" msgid="7669538706120092399">"<b>Pour commencer</b><br/> {0,number,integer}. Accédez aux paramètres d\'accessibilité<br/> {1,number,integer}. Sélectionnez une fonctionnalité et touchez le raccourci<br/> {2,number,integer}. Choisissez le bouton pour accéder à la fonctionnalité<br/>"</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>
<string name="accessibility_button_fade_title" msgid="8081993897680588829">"Disparaît s\'il n\'est pas utilisé"</string>
- <string name="accessibility_button_fade_summary" msgid="7865950833524973709">"Disparaît après quelques secondes, l\'écran devient donc plus facile à voir"</string>
+ <string name="accessibility_button_fade_summary" msgid="7865950833524973709">"Disparaît après quelques secondes pour que vous puissiez mieux voir l\'écran"</string>
<string name="accessibility_button_opacity_title" msgid="4727355657530362289">"Transparent s\'il n\'est pas utilisé"</string>
<string name="accessibility_button_low_label" msgid="4193015407828927741">"Transparent"</string>
<string name="accessibility_button_high_label" msgid="9138077512008190896">"Opaque"</string>
@@ -2269,14 +2264,14 @@
<string name="accessibility_control_timeout_about_title" msgid="813588002683460837">"À propos du délai pour effectuer une action (accessibilité)"</string>
<string name="accessibility_control_timeout_footer_learn_more_content_description" msgid="8118584413220542193">"En savoir plus sur le délai pour effectuer une action (accessibilité)"</string>
<string name="accessibility_control_timeout_preference_title" msgid="1443940538597464758">"Temps pour réagir"</string>
- <string name="accessibility_control_timeout_preference_summary" msgid="4037051091059316310">"Cette préférence du temps d\'affichage n\'est pas prise en charge par toutes les applications"</string>
+ <string name="accessibility_control_timeout_preference_summary" msgid="4037051091059316310">"Cette préférence du temps d\'affichage n\'est pas prise en charge par toutes les applis"</string>
<string name="accessibility_control_timeout_preference_intro_text" msgid="1398116710556762245">"Choisissez la durée d\'affichage des messages temporaires qui vous demandent d\'effectuer une action"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="5237764682976688855">"Délai de pression"</string>
<string name="accessibility_display_inversion_preference_title" msgid="5476133104746207952">"Inversion des couleurs"</string>
<string name="accessibility_display_inversion_switch_title" msgid="7458595722552743503">"Utiliser l\'inversion des couleurs"</string>
<string name="accessibility_display_inversion_shortcut_title" msgid="6889624526691513462">"Raccourci de l\'inversion des couleurs"</string>
<string name="accessibility_display_inversion_preference_intro_text" msgid="1159663288481145318">"L\'inversion des couleurs assombrit les écrans lumineux. Elle illumine également les écrans sombres."</string>
- <string name="accessibility_display_inversion_preference_subtitle" msgid="4494767676482389509">"<b>N\'oubliez pas</b><br/> <ol> <li> Les couleurs changeront dans les fichiers multimédias et les images.</li> <li> L\'inversion des couleurs fonctionne sur toutes les applications.</li> <li> Le thème sombre peut être utilisé pour afficher un arrière-plan sombre.</li> </ol>"</string>
+ <string name="accessibility_display_inversion_preference_subtitle" msgid="4494767676482389509">"<b>N\'oubliez pas</b><br/> <ol> <li> Les couleurs changeront dans les fichiers multimédias et les images.</li> <li> L\'inversion des couleurs fonctionne sur toutes les applis.</li> <li> Le thème sombre peut être utilisé pour afficher un arrière-plan sombre.</li> </ol>"</string>
<string name="accessibility_action_label_panel_slice" msgid="1313725957071602932">"accéder aux paramètres"</string>
<string name="accessibility_autoclick_preference_title" msgid="2703143361605555752">"Clic automatique (temps d\'arrêt)"</string>
<string name="accessibility_autoclick_about_title" msgid="152923024405552594">"Clic automatique (temps d\'arrêt)"</string>
@@ -2311,7 +2306,7 @@
<string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Retour tactile"</string>
<string name="accessibility_service_primary_switch_title" msgid="437610853412159406">"Utiliser <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g>"</string>
<string name="accessibility_service_primary_open_title" msgid="8655108684769091154">"Ouvrir <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g>"</string>
- <string name="accessibility_service_auto_added_qs_tooltip_content" msgid="2941824314912928072">"L\'application <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g> a été ajoutée aux Paramètres rapides. Balayez vers le bas pour l\'activer ou la désactiver à tout moment."</string>
+ <string name="accessibility_service_auto_added_qs_tooltip_content" msgid="2941824314912928072">"L\'appli <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g> a été ajoutée aux Paramètres rapides. Balayez vers le bas pour l\'activer ou la désactiver à tout moment."</string>
<string name="accessibility_service_qs_tooltip_content" msgid="6002493441414967868">"Vous pouvez également ajouter <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g> aux Paramètres rapides à partir du haut de votre écran"</string>
<string name="accessibility_color_correction_auto_added_qs_tooltip_content" msgid="9092661358437404374">"La fonctionnalité de correction des couleurs a été ajoutée aux Paramètres rapides. Balayez vers le bas pour l\'activer ou la désactiver à tout moment."</string>
<string name="accessibility_color_correction_qs_tooltip_content" msgid="3258628434235475205">"Vous pouvez également ajouter la fonctionnalité de correction des couleurs aux Paramètres rapides à partir du haut de votre écran"</string>
@@ -2330,12 +2325,12 @@
<string name="accessibility_color_inversion_about_title" msgid="8275754480247040136">"À propos de l\'inversion des couleurs"</string>
<string name="accessibility_color_inversion_footer_learn_more_content_description" msgid="5382579548498952445">"En savoir plus sur l\'inversion des couleurs"</string>
<string name="accessibility_captioning_primary_switch_title" msgid="3663677340286206100">"Afficher les sous-titres"</string>
- <string name="accessibility_captioning_primary_switch_summary" msgid="2544094070306830218">"Pour l\'application prise en charge seulement"</string>
+ <string name="accessibility_captioning_primary_switch_summary" msgid="2544094070306830218">"Pour l\'appli prise en charge seulement"</string>
<string name="captioning_appearance_title" msgid="3128792092290011408">"Taille et style des sous-titres"</string>
<string name="captioning_appearance_summary" msgid="4620682807315588019">"Taille du texte : <xliff:g id="ACCESSIBILITY_FONT_SIZE">%1$s</xliff:g>"</string>
<string name="captioning_more_options_title" msgid="3484496882942539652">"Plus d\'options"</string>
<string name="accessibility_captioning_preference_intro" msgid="8995427146374031134">"Personnalisez la taille et le style des sous-titres pour les rendre plus faciles à lire"</string>
- <string name="accessibility_captioning_preference_summary" msgid="8335768472978374255">"Ces préférences de sous-titres ne sont pas prises en charge par toutes les applications multimédias"</string>
+ <string name="accessibility_captioning_preference_summary" msgid="8335768472978374255">"Ces préférences de sous-titres ne sont pas prises en charge par toutes les applis multimédias"</string>
<string name="accessibility_shortcut_type_software" msgid="2552732582767687515">"bouton d\'accessibilité"</string>
<string name="accessibility_shortcut_type_software_gesture" msgid="5608959693931019059">"Balayer l\'écran du bas vers le haut avec deux doigts"</string>
<string name="accessibility_shortcut_type_hardware" msgid="4834144210432451916">"Maintenir enfoncées les touches de volume"</string>
@@ -2436,13 +2431,13 @@
<string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
<string name="enable_service_title" msgid="7231533866953706788">"Permettre au service <xliff:g id="SERVICE">%1$s</xliff:g> de contrôler complètement votre appareil?"</string>
<string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> doit pouvoir :"</string>
- <string name="touch_filtered_warning" msgid="4225815157460318241">"Une application obscurcit une demande d\'autorisation, alors Paramètres ne peut pas vérifier votre réponse."</string>
- <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> demande l\'autorisation de contrôler cet appareil. Le service peut lire l\'écran et agir pour les utilisateurs qui font appels aux fonctions d\'accessibilité. Ce niveau de contrôle ne convient pas à la majorité des applications."</string>
- <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Le contrôle total convient aux applications qui répondent à vos besoins d\'accessibilité. Il ne convient pas à la plupart des applications."</string>
+ <string name="touch_filtered_warning" msgid="4225815157460318241">"Une appli obscurcit une demande d\'autorisation, alors Paramètres ne peut pas vérifier votre réponse."</string>
+ <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> demande l\'autorisation de contrôler cet appareil. Le service peut lire l\'écran et agir pour les utilisateurs qui font appels aux fonctions d\'accessibilité. Ce niveau de contrôle ne convient pas à la majorité des applis."</string>
+ <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Le contrôle total convient aux applis qui répondent à vos besoins d\'accessibilité. Il ne convient pas à la plupart des applis."</string>
<string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Afficher et contrôler l\'écran"</string>
- <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Cette fonctionnalité peut lire tout le contenu à l\'écran et afficher du contenu par-dessus d\'autres applications."</string>
+ <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Cette fonctionnalité peut lire tout le contenu à l\'écran et afficher du contenu par-dessus d\'autres applis."</string>
<string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Afficher et effectuer des actions"</string>
- <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Cette fonctionnalité peut faire le suivi de vos interactions avec une application ou un capteur matériel et interagir avec des applications en votre nom."</string>
+ <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Cette fonctionnalité peut faire le suivi de vos interactions avec une appli ou un capteur matériel et interagir avec des applis en votre nom."</string>
<string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Autoriser"</string>
<string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuser"</string>
<string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Désactiver"</string>
@@ -2511,9 +2506,9 @@
<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_summary" msgid="3817376868497046016">"Autoriser l\'appli à 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_warning_dialog_text" msgid="8202776985767701095">"Si vous limitez l\'activité en arrière-plan d\'une appli, 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_settings_title" msgid="8150026934645052635">"Autoriser l\'utilisation en arrière-plan"</string>
@@ -2523,10 +2518,10 @@
<string name="manager_battery_usage_optimized_title" msgid="8080765739761921817">"Optimisée"</string>
<string name="manager_battery_usage_restricted_title" msgid="7702863764130323118">"Limitée"</string>
<string name="manager_battery_usage_unrestricted_summary" msgid="6819279865465667692">"Autoriser l\'utilisation de la pile en arrière-plan sans restrictions. Cela pourrait solliciter davantage la pile."</string>
- <string name="manager_battery_usage_optimized_summary" msgid="1332545476428039900">"Optimiser en fonction de votre usage. Ce réglage est recommandé pour la plupart des applications."</string>
- <string name="manager_battery_usage_restricted_summary" msgid="8324695640704416905">"Restreindre l\'utilisation de la pile lors du fonctionnement en arrière-plan. L\'application pourrait ne pas fonctionner comme prévu. Les notifications pourraient être retardées."</string>
- <string name="manager_battery_usage_footer" msgid="2635906573922553766">"La modification de la manière dont une application utilise la pile peut avoir une incidence sur ses performances."</string>
- <string name="manager_battery_usage_footer_limited" msgid="5180776148877306780">"Cette application nécessite une utilisation <xliff:g id="STATE">%1$s</xliff:g> de la pile."</string>
+ <string name="manager_battery_usage_optimized_summary" msgid="1332545476428039900">"Optimiser en fonction de votre usage. Ce réglage est recommandé pour la plupart des applis."</string>
+ <string name="manager_battery_usage_restricted_summary" msgid="8324695640704416905">"Restreindre l\'utilisation de la pile lors du fonctionnement en arrière-plan. L\'appli pourrait ne pas fonctionner comme prévu. Les notifications pourraient être retardées."</string>
+ <string name="manager_battery_usage_footer" msgid="2635906573922553766">"La modification de la manière dont une appli utilise la pile peut avoir une incidence sur ses performances."</string>
+ <string name="manager_battery_usage_footer_limited" msgid="5180776148877306780">"Cette appli nécessite une utilisation <xliff:g id="STATE">%1$s</xliff:g> de la pile."</string>
<string name="manager_battery_usage_unrestricted_only" msgid="3646162131339418216">"sans restriction"</string>
<string name="manager_battery_usage_optimized_only" msgid="7121785281913056432">"optimisée"</string>
<string name="manager_battery_usage_link_a11y" msgid="374918091821438564">"En savoir plus à propos des options d\'utilisation de la pile"</string>
@@ -2536,11 +2531,11 @@
<string name="advanced_battery_preference_title" msgid="3790901207877260883">"Utilisation de la pile"</string>
<string name="advanced_battery_preference_summary_with_hours" msgid="954091349133320955">"Voir utilisation des dernières 24 heures"</string>
<string name="advanced_battery_preference_summary" msgid="2372763700477268393">"Utilisation depuis la charge complète"</string>
- <string name="battery_details_title" msgid="3289680399291090588">"Utilisation de la pile par les applications"</string>
+ <string name="battery_details_title" msgid="3289680399291090588">"Utilisation de la pile par les applis"</string>
<string name="details_subtitle" msgid="2550872569652785527">"Détails d\'utilisation"</string>
<string name="controls_subtitle" msgid="3759606830916441564">"Ajuster la consommation"</string>
<string name="packages_subtitle" msgid="8687690644931499428">"Modules inclus"</string>
- <string name="battery_tip_summary_title" msgid="321127485145626939">"Les applications fonctionnent normalement"</string>
+ <string name="battery_tip_summary_title" msgid="321127485145626939">"Les applis fonctionnent normalement"</string>
<string name="battery_tip_low_battery_title" msgid="4155239078744100997">"Pile faible"</string>
<string name="battery_tip_low_battery_summary" msgid="2629633757244297436">"Activez l\'économiseur de pile pour prolonger l\'autonomie de la pile"</string>
<string name="battery_tip_smart_battery_title" msgid="8925025450214912325">"Améliorer l\'autonomie de la pile"</string>
@@ -2551,40 +2546,40 @@
<string name="battery_saver_link_a11y" msgid="6613079613524512257">"En savoir plus à propos de l\'Économiseur de pile"</string>
<string name="battery_tip_early_heads_up_done_summary" msgid="7858923105760361208">"Certaines fonctionnalités pourraient être limitées"</string>
<string name="battery_tip_high_usage_title" msgid="9110720762506146697">"Utilisation plus élevée de la pile"</string>
- <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Affichez les applications qui utilisent le plus d\'énergie"</string>
+ <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Affichez les applis 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_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>
- <string name="battery_tip_restrict_title" msgid="4537101947310626753">"{count,plural, =1{Limiter # application}one{Limiter # application}other{Limiter # applications}}"</string>
- <string name="battery_tip_restrict_handled_title" msgid="7142074986508706853">"{count,plural, =1{{label} récemment limitée}one{# application récemment limitée}other{# applications récemment limitées}}"</string>
- <string name="battery_tip_restrict_summary" msgid="7539469590829235277">"{count,plural, =1{{label} consomme beaucoup d\'énergie en arrière-plan}one{# application consomme beaucoup d\'énergie en arrière-plan}other{# applications consomment beaucoup d\'énergie en arrière-plan}}"</string>
- <string name="battery_tip_restrict_handled_summary" msgid="3535697154547199190">"{count,plural, =1{Cette application ne peut pas fonctionner en arrière-plan}one{Cette application ne peut pas fonctionner en arrière-plan}other{Ces applications ne peuvent pas fonctionner en arrière-plan}}"</string>
- <string name="battery_tip_restrict_app_dialog_title" msgid="1649476357343160240">"{count,plural, =1{Limiter l\'application?}one{Limiter # application?}other{Limiter # applications?}}"</string>
- <string name="battery_tip_restrict_app_dialog_message" msgid="137856003724730751">"Pour économiser la pile, empêchez <xliff:g id="APP">%1$s</xliff:g> de l\'utiliser en arrière-plan. Il se peut que cette application ne fonctionne pas correctement et que les notifications soient retardées."</string>
- <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="5894648804112181324">"Pour économiser la pile, empêchez ces applications de l\'utiliser en arrière-plan. Il se peut que les applications restreintes ne fonctionnent pas correctement et que les notifications soient retardées.\n\nApplications :"</string>
- <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="4546838397423565138">"Pour économiser la pile, empêchez ces applications de l\'utiliser en arrière-plan. Il se peut que les applications restreintes ne fonctionnent pas correctement et que les notifications soient retardées.\n\nApplications :\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
+ <string name="battery_tip_restrict_title" msgid="4537101947310626753">"{count,plural, =1{Limiter # appli}one{Limiter # appli}other{Limiter # applis}}"</string>
+ <string name="battery_tip_restrict_handled_title" msgid="7142074986508706853">"{count,plural, =1{{label} récemment limitée}one{# appli récemment limitée}other{# applis récemment limitées}}"</string>
+ <string name="battery_tip_restrict_summary" msgid="7539469590829235277">"{count,plural, =1{{label} consomme beaucoup d\'énergie en arrière-plan}one{# appli consomme beaucoup d\'énergie en arrière-plan}other{# applis consomment beaucoup d\'énergie en arrière-plan}}"</string>
+ <string name="battery_tip_restrict_handled_summary" msgid="3535697154547199190">"{count,plural, =1{Cette appli ne peut pas fonctionner en arrière-plan}one{Cette appli ne peut pas fonctionner en arrière-plan}other{Ces applis ne peuvent pas fonctionner en arrière-plan}}"</string>
+ <string name="battery_tip_restrict_app_dialog_title" msgid="1649476357343160240">"{count,plural, =1{Limiter l\'appli?}one{Limiter # appli?}other{Limiter # applis?}}"</string>
+ <string name="battery_tip_restrict_app_dialog_message" msgid="137856003724730751">"Pour économiser la pile, empêchez <xliff:g id="APP">%1$s</xliff:g> de l\'utiliser en arrière-plan. Il se peut que cette appli ne fonctionne pas correctement et que les notifications soient retardées."</string>
+ <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="5894648804112181324">"Pour économiser la pile, empêchez ces applis de l\'utiliser en arrière-plan. Il se peut que les applis restreintes ne fonctionnent pas correctement et que les notifications soient retardées.\n\nApplis :"</string>
+ <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="4546838397423565138">"Pour économiser la pile, empêchez ces applis de l\'utiliser en arrière-plan. Il se peut que les applis restreintes ne fonctionnent pas correctement et que les notifications soient retardées.\n\nApplis :\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
<string name="battery_tip_restrict_app_dialog_ok" msgid="7025027696689301916">"Restreindre"</string>
<string name="battery_tip_unrestrict_app_dialog_title" msgid="5501997201160532301">"Supprimer la restriction?"</string>
- <string name="battery_tip_unrestrict_app_dialog_message" msgid="215449637818582819">"Cette application pourra utiliser la pile en arrière-plan. Cela pourrait épuiser la pile plus rapidement."</string>
+ <string name="battery_tip_unrestrict_app_dialog_message" msgid="215449637818582819">"Cette appli pourra utiliser la pile en arrière-plan. Cela pourrait épuiser la pile plus rapidement."</string>
<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="9172893341338732733">"Ignorer"</string>
<string name="battery_tip_incompatible_charging_title" msgid="1567827436103364999">"Vérifier l\'accessoire de recharge"</string>
<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>
- <string name="smart_battery_footer" msgid="8407121907452993645">"Lorsque le gestionnaire de pile détecte que des applications drainent la pile, il vous offrira la possibilité de les restreindre. Il se peut que les applications restreintes ne fonctionnent pas correctement et que les notifications soient retardées."</string>
- <string name="restricted_app_title" msgid="6585080822121007436">"Applications restreintes"</string>
- <string name="restricted_app_summary" msgid="1022307922754893997">"{count,plural, =1{L\'utilisation de la pile est limitée pour # application}one{L\'utilisation de la pile est limitée pour # application}other{L\'utilisation de la pile est limitée pour # applications}}"</string>
- <string name="restricted_app_time_summary" msgid="3097721884155913252">"Application restreinte : <xliff:g id="TIME">%1$s</xliff:g>"</string>
- <string name="restricted_app_detail_footer" msgid="3495725286882138803">"Ces applications sont limitées à l\'utilisation de la pile en arrière-plan. Il se peut qu\'elles ne fonctionnent pas comme prévu et que les notifications soient retardées."</string>
+ <string name="smart_battery_title" msgid="9095903608520254254">"Gérer les applis automatiquement"</string>
+ <string name="smart_battery_footer" msgid="8407121907452993645">"Lorsque le gestionnaire de pile détecte que des applis drainent la pile, il vous offrira la possibilité de les restreindre. Il se peut que les applis restreintes ne fonctionnent pas correctement et que les notifications soient retardées."</string>
+ <string name="restricted_app_title" msgid="6585080822121007436">"Applis restreintes"</string>
+ <string name="restricted_app_summary" msgid="1022307922754893997">"{count,plural, =1{L\'utilisation de la pile est limitée pour # appli}one{L\'utilisation de la pile est limitée pour # appli}other{L\'utilisation de la pile est limitée pour # applis}}"</string>
+ <string name="restricted_app_time_summary" msgid="3097721884155913252">"Appli restreinte : <xliff:g id="TIME">%1$s</xliff:g>"</string>
+ <string name="restricted_app_detail_footer" msgid="3495725286882138803">"Ces applis sont limitées à l\'utilisation de la pile en arrière-plan. Il se peut qu\'elles ne fonctionnent pas comme prévu et que les notifications soient retardées."</string>
<string name="battery_auto_restriction_title" msgid="827206218118093357">"Utiliser le gestionnaire de pile"</string>
- <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Détecter quand les applications drainent la pile"</string>
- <string name="battery_manager_summary" msgid="255708681438809287">"Détecter quand les applications sollicitent beaucoup la pile"</string>
- <string name="battery_manager_summary_unsupported" msgid="7334173707292807964">"Détecter quand les applications sollicitent beaucoup la pile"</string>
- <string name="battery_manager_app_restricted" msgid="2583902700677009173">"{count,plural, =1{# application limitée}one{# application limitée}other{# applications limitées}}"</string>
+ <string name="battery_auto_restriction_summary" msgid="2140896101984815711">"Détecter quand les applis drainent la pile"</string>
+ <string name="battery_manager_summary" msgid="255708681438809287">"Détecter quand les applis sollicitent beaucoup la pile"</string>
+ <string name="battery_manager_summary_unsupported" msgid="7334173707292807964">"Détecter quand les applis sollicitent beaucoup la pile"</string>
+ <string name="battery_manager_app_restricted" msgid="2583902700677009173">"{count,plural, =1{# appli limitée}one{# appli limitée}other{# applis limitées}}"</string>
<string name="battery_missing_message" msgid="400958471814422770">"Un problème est survenu lors de la lecture du niveau de charge de la pile."</string>
<string name="battery_missing_link_message" msgid="6021565067124898074"></string>
<string name="battery_missing_link_a11y_message" msgid="3310971406602316323">"Touchez pour en savoir plus à propos de cette erreur"</string>
@@ -2609,16 +2604,16 @@
<string name="battery_not_usage_24hr" msgid="8397519536160741248">"Aucune utilisation au cours des dernières 24 heures"</string>
<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_system_apps" msgid="8659537819731575299">"Applis système"</string>
+ <string name="battery_usage_uninstalled_apps" msgid="8170405012552803662">"Applis 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>
<string name="estimated_time_description" msgid="211058785418596009">"La durée estimée peut changer en fonction de l\'utilisation"</string>
<string name="process_mediaserver_label" msgid="6135260215912215092">"Serveur multimédia"</string>
- <string name="process_dex2oat_label" msgid="1190208677726583153">"Optimisation des applications"</string>
+ <string name="process_dex2oat_label" msgid="1190208677726583153">"Optimisation des applis"</string>
<string name="process_network_tethering" msgid="6822671758152900766">"Partage de connexion"</string>
- <string name="process_removed_apps" msgid="6544406592678476902">"Applications retirées"</string>
+ <string name="process_removed_apps" msgid="6544406592678476902">"Applis retirées"</string>
<string name="battery_saver" msgid="7737147344510595864">"Économiseur de pile"</string>
<string name="battery_saver_auto_title" msgid="6789753787070176144">"Activer automatiquement"</string>
<string name="battery_saver_auto_no_schedule" msgid="5123639867350138893">"Aucun horaire"</string>
@@ -2643,14 +2638,14 @@
<string name="battery_percentage_description" msgid="2321465139126125541">"Afficher le pourcentage de charge de la pile dans la barre d\'état"</string>
<string name="battery_usage_chart_graph_hint_last_full_charge" msgid="6570336408060566877">"Niveau de la pile depuis la dernière recharge complète"</string>
<string name="battery_usage_chart_graph_hint" msgid="9182079098173323005">"Niveau de la pile, dernières 24 h"</string>
- <string name="battery_app_usage" msgid="8976453608783133770">"Utilisation des applications depuis la dernière charge complète"</string>
- <string name="battery_app_usage_for_past_24" msgid="1234770810563940656">"Utilisation par application, dernières 24 h"</string>
+ <string name="battery_app_usage" msgid="8976453608783133770">"Utilisation des applis depuis la dernière charge complète"</string>
+ <string name="battery_app_usage_for_past_24" msgid="1234770810563940656">"Utilisation par appli, dernières 24 h"</string>
<string name="battery_system_usage" msgid="1395943945140097585">"Utilisation du système depuis la dernière recharge complète"</string>
<string name="battery_system_usage_for_past_24" msgid="3341520273114616263">"Utilisation par le système, dernières 24 h"</string>
<string name="battery_system_usage_for" msgid="3248552137819897140">"Utilisation par le système : <xliff:g id="SLOT">%s</xliff:g>"</string>
- <string name="battery_app_usage_for" msgid="7309909074935858949">"Utilisation par l\'application : <xliff:g id="SLOT">%s</xliff:g>"</string>
+ <string name="battery_app_usage_for" msgid="7309909074935858949">"Utilisation par l\'appli : <xliff:g id="SLOT">%s</xliff:g>"</string>
<string name="battery_system_usage_since_last_full_charge_to" msgid="4196795733829841971">"Utilisation du système depuis la dernière recharge complète jusqu\'à <xliff:g id="SLOT_TIMESTAMP">%s</xliff:g>"</string>
- <string name="battery_app_usage_since_last_full_charge_to" msgid="4339201995118102114">"Utilisation des applications depuis la dernière recharge complète jusqu\'à <xliff:g id="SLOT_TIMESTAMP">%s</xliff:g>"</string>
+ <string name="battery_app_usage_since_last_full_charge_to" msgid="4339201995118102114">"Utilisation des applis depuis la dernière recharge complète jusqu\'à <xliff:g id="SLOT_TIMESTAMP">%s</xliff:g>"</string>
<string name="battery_usage_total_less_than_one_minute" msgid="951460680288855780">"Total : moins d\'une minute"</string>
<string name="battery_usage_background_less_than_one_minute" msgid="267133882897827276">"Arrière-plan : moins d\'une minute"</string>
<string name="battery_usage_screen_time_less_than_one_minute" msgid="578511021578427369">"Temps d\'utilisation des écrans : moins d\'une minute"</string>
@@ -2672,7 +2667,7 @@
<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>
<string name="screen_time_category_for_slot" msgid="8287722270554654959">"Temps d\'utilisation des écrans pour <xliff:g id="SLOT">%s</xliff:g>"</string>
- <string name="battery_usage_spinner_view_by_apps" msgid="8769276544072098082">"Afficher par application"</string>
+ <string name="battery_usage_spinner_view_by_apps" msgid="8769276544072098082">"Afficher par appli"</string>
<string name="battery_usage_spinner_view_by_systems" msgid="7904104223212160541">"Afficher par système"</string>
<string name="battery_usage_less_than_percent" msgid="5873099028895001082">"< <xliff:g id="PERCENTAGE">%1$s</xliff:g>"</string>
<string name="battery_usage_less_than_percent_content_description" msgid="6265933174815461493">"moins de <xliff:g id="PERCENTAGE">%1$s</xliff:g>"</string>
@@ -2718,7 +2713,7 @@
<string name="voice_service_preference_section_title" msgid="4807795449147187497">"Services d\'entrée vocale"</string>
<string name="voice_interactor_preference_summary" msgid="3942881638813452880">"Détection de mot clé et interaction totales"</string>
<string name="voice_recognizer_preference_summary" msgid="9195427725367463336">"Synthèse vocale simple"</string>
- <string name="voice_interaction_security_warning" msgid="7962884055885987671">"Ce service d\'entrée vocale pourra contrôler en permanence les fonctionnalités vocales et utiliser en votre nom les applications commandées par la voix. Il provient de l\'application <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g>. Autoriser l\'utilisation de ce service?"</string>
+ <string name="voice_interaction_security_warning" msgid="7962884055885987671">"Ce service d\'entrée vocale pourra contrôler en permanence les fonctionnalités vocales et utiliser en votre nom les applis commandées par la voix. Il provient de l\'appli <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g>. Autoriser l\'utilisation de ce service?"</string>
<string name="on_device_recognition_settings" msgid="6503160369314598069">"Paramètres de reconnaissance sur l\'appareil"</string>
<string name="on_device_recognition_settings_title" msgid="7137599722039096545">"Reconnaissance sur l\'appareil"</string>
<string name="on_device_recognition_settings_summary" msgid="3292736423223499348">"Reconnaissance vocale sur l\'appareil"</string>
@@ -2729,8 +2724,8 @@
<string name="tts_install_voice_title" msgid="5133545696447933812">"Voix"</string>
<string name="tts_spoken_language" msgid="4652894245474520872">"Langue parlée"</string>
<string name="tts_install_voices_title" msgid="6505257816336165782">"installer des voix"</string>
- <string name="tts_install_voices_text" msgid="902408506519246362">"Continuer vers l\'application <xliff:g id="TTS_APP_NAME">%s</xliff:g> pour installer des voix"</string>
- <string name="tts_install_voices_open" msgid="919034855418197668">"Ouvrir l\'application"</string>
+ <string name="tts_install_voices_text" msgid="902408506519246362">"Continuer vers l\'appli <xliff:g id="TTS_APP_NAME">%s</xliff:g> pour installer des voix"</string>
+ <string name="tts_install_voices_open" msgid="919034855418197668">"Ouvrir l\'appli"</string>
<string name="tts_install_voices_cancel" msgid="5179154684379560628">"Annuler"</string>
<string name="tts_reset" msgid="9047681050813970031">"Réinitialiser"</string>
<string name="tts_play" msgid="2945513377250757221">"Lire"</string>
@@ -2763,7 +2758,7 @@
<string name="user_credentials_summary" msgid="686471637627271856">"Afficher et modifier les authentifiants stockés"</string>
<string name="advanced_security_title" msgid="7117581975877192652">"Paramètres avancés"</string>
<string name="credentials_settings_not_available" msgid="7433088409177429600">"Les authentifiants ne sont pas accessibles pour cet utilisateur"</string>
- <string name="credential_for_vpn_and_apps" msgid="2208229692860871136">"Installé pour le RPV et les applications"</string>
+ <string name="credential_for_vpn_and_apps" msgid="2208229692860871136">"Installé pour le RPV et les applis"</string>
<string name="credential_for_wifi" msgid="2286560570630763556">"Installé pour le Wi-Fi"</string>
<string name="credential_installed_for_wifi" msgid="2206050464844710099">"Installé pour <xliff:g id="SSID">%s</xliff:g>"</string>
<string name="credential_using_for_wifi" msgid="6134471366188592845">"Utiliser pour <xliff:g id="SSID">%s</xliff:g>"</string>
@@ -2776,22 +2771,22 @@
<string name="user_certificate" msgid="6897024598058566466">"Certif. RPV et d\'appli de l\'util."</string>
<string name="wifi_certificate" msgid="8461905432409380387">"Certificat Wi‑Fi"</string>
<string name="ca_certificate_warning_title" msgid="7951148441028692619">"Vos données ne seront pas privées"</string>
- <string name="ca_certificate_warning_description" msgid="8409850109551028774">"Les certificats CA sont employés par les sites Web, les applications et les RPV pour assurer le chiffrement. Installez uniquement les certificats CA provenant d\'organisations en qui vous avez confiance. \n\nSi vous installez un certificat CA, son propriétaire pourrait accéder à vos données, comme vos mots de passe ou vos renseignements de cartes de crédit, provenant de sites Web que vous visitez ou d\'applications que vous utilisez, même si ces données sont chiffrées."</string>
+ <string name="ca_certificate_warning_description" msgid="8409850109551028774">"Les certificats CA sont employés par les sites Web, les applis et les RPV pour assurer le chiffrement. Installez uniquement les certificats CA provenant d\'organisations en qui vous avez confiance. \n\nSi vous installez un certificat CA, son propriétaire pourrait accéder à vos données, comme vos mots de passe ou vos renseignements de cartes de crédit, provenant de sites Web que vous visitez ou d\'applis que vous utilisez, même si ces données sont chiffrées."</string>
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ne pas installer"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Installer quand même"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificat non installé"</string>
<string name="request_manage_credentials_title" msgid="596805634568013413">"Autoriser "<b>"<xliff:g id="APP_NAME">^1</xliff:g>"</b>" à installer des certificats sur cet appareil?"</string>
- <string name="request_manage_credentials_description" msgid="8044839857171509619">"Ces certificats vous vérifieront en partageant l\'identifiant unique de votre appareil avec les applications et les URL ci-dessous"</string>
+ <string name="request_manage_credentials_description" msgid="8044839857171509619">"Ces certificats vous vérifieront en partageant l\'identifiant unique de votre appareil avec les applis et les URL ci-dessous"</string>
<string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ne pas autoriser"</string>
<string name="request_manage_credentials_allow" msgid="4910940118408348245">"Autoriser"</string>
<string name="request_manage_credentials_more" msgid="6101210283534101582">"Afficher plus d\'options"</string>
<string name="certificate_management_app" msgid="8086699498358080826">"Appli de gest. de certificats"</string>
<string name="no_certificate_management_app" msgid="3025739370424406717">"Aucune"</string>
- <string name="certificate_management_app_description" msgid="8507306554200869005">"Des certificats vous vérifieront lorsque vous utiliserez les applications et les URL ci-dessous"</string>
+ <string name="certificate_management_app_description" msgid="8507306554200869005">"Des certificats vous vérifieront lorsque vous utiliserez les applis et les URL ci-dessous"</string>
<string name="uninstall_certs_credential_management_app" msgid="4945883254446077354">"Désinstaller les certificats"</string>
- <string name="remove_credential_management_app" msgid="6089291496976812786">"Retirer l\'application"</string>
- <string name="remove_credential_management_app_dialog_title" msgid="5713525435104706772">"Retirer cette application?"</string>
- <string name="remove_credential_management_app_dialog_message" msgid="7739474298063646935">"Cette application ne gérera pas les certificats, mais elle restera sur votre appareil. Tout certificat installé par l\'application sera désinstallé."</string>
+ <string name="remove_credential_management_app" msgid="6089291496976812786">"Retirer l\'appli"</string>
+ <string name="remove_credential_management_app_dialog_title" msgid="5713525435104706772">"Retirer cette appli?"</string>
+ <string name="remove_credential_management_app_dialog_message" msgid="7739474298063646935">"Cette appli ne gérera pas les certificats, mais elle restera sur votre appareil. Tout certificat installé par l\'appli sera désinstallé."</string>
<string name="number_of_urls" msgid="1128699121050872188">"{count,plural, =1{# URL}one{# URL}other{# URL}}"</string>
<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>
@@ -2799,35 +2794,35 @@
<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>
- <string name="backup_data_summary" msgid="8054551085241427531">"Sauvegarder les données d\'applications, les mots de passe Wi-Fi et d\'autres paramètres sur les serveurs Google"</string>
+ <string name="backup_data_summary" msgid="8054551085241427531">"Sauvegarder les données d\'applis, les mots de passe Wi-Fi et d\'autres paramètres sur les serveurs Google"</string>
<string name="backup_configure_account_title" msgid="8574055186903658842">"Compte de sauvegarde"</string>
<string name="backup_data_management_title" msgid="6596830198441939702">"Gérer le compte de sauvegarde"</string>
- <string name="include_app_data_title" msgid="2969603876620594523">"Inclure données applications"</string>
+ <string name="include_app_data_title" msgid="2969603876620594523">"Inclure données applis"</string>
<string name="auto_restore_title" msgid="4124345897936637561">"Restauration automatique"</string>
- <string name="auto_restore_summary" msgid="6830198851045584001">"Lors de la réinstallation d\'une application, restaurer les paramètres et les données sauvegardées"</string>
+ <string name="auto_restore_summary" msgid="6830198851045584001">"Lors de la réinstallation d\'une appli, restaurer les paramètres et les données sauvegardées"</string>
<string name="backup_inactive_title" msgid="6753265378043349277">"Le service de sauvegarde n\'est pas actif"</string>
<string name="backup_configure_account_default_summary" msgid="5323225330966306690">"Actuellement, aucun compte n\'enregistre de données de sauvegarde"</string>
<string name="backup_erase_dialog_title" msgid="5892431263348766484"></string>
- <string name="backup_erase_dialog_message" msgid="2250872501409574331">"Voulez-vous vraiment arrêter de sauvegarder vos mots de passe Wi-Fi, vos favoris, ainsi que d\'autres paramètres et données d\'applications, et en effacer toutes les copies des serveurs Google?"</string>
- <string name="fullbackup_erase_dialog_message" msgid="2379053988557486162">"Voulez-vous vraiment arrêter de sauvegarder les données de l\'appareil (comme les mots de passe Wi-Fi et l\'historique des appels) et celles des applications (telles que les paramètres et les fichiers enregistrés par ces applications), et en effacer toutes les copies sur les serveurs distants?"</string>
- <string name="fullbackup_data_summary" msgid="971587401251601473">"Sauvegardez automatiquement les données de l\'appareil (comme les mots de passe Wi-Fi et l\'historique des appels) et celles des applications (telles que les paramètres et les fichiers enregistrés par ces applications) à distance.\n\nLorsque vous activez la sauvegarde automatique, les données de l\'appareil et des applications sont enregistrées régulièrement à distance. Les données d\'applications correspondent à toutes les données enregistrées par une application (en fonction des paramètres que le développeur définit), y compris les données potentiellement confidentielles comme les contacts, les messages et les photos."</string>
+ <string name="backup_erase_dialog_message" msgid="2250872501409574331">"Voulez-vous vraiment arrêter de sauvegarder vos mots de passe Wi-Fi, vos favoris, ainsi que d\'autres paramètres et données d\'applis, et en effacer toutes les copies des serveurs Google?"</string>
+ <string name="fullbackup_erase_dialog_message" msgid="2379053988557486162">"Voulez-vous vraiment arrêter de sauvegarder les données de l\'appareil (comme les mots de passe Wi-Fi et l\'historique des appels) et celles des applis (telles que les paramètres et les fichiers enregistrés par ces applis), et en effacer toutes les copies sur les serveurs distants?"</string>
+ <string name="fullbackup_data_summary" msgid="971587401251601473">"Sauvegardez automatiquement les données de l\'appareil (comme les mots de passe Wi-Fi et l\'historique des appels) et celles des applis (telles que les paramètres et les fichiers enregistrés par ces applis) à distance.\n\nLorsque vous activez la sauvegarde automatique, les données de l\'appareil et des applis sont enregistrées régulièrement à distance. Les données d\'applis correspondent à toutes les données enregistrées par une appli (en fonction des paramètres que le développeur définit), y compris les données potentiellement confidentielles comme les contacts, les messages et les photos."</string>
<string name="device_admin_settings_title" msgid="31392408594557070">"Paramètres d\'administration de l\'appareil"</string>
<string name="active_device_admin_msg" msgid="7744106305636543184">"Appli d\'administration de l\'appareil"</string>
- <string name="remove_device_admin" msgid="3143059558744287259">"Désactiver cette application d\'administration d\'appareil"</string>
- <string name="uninstall_device_admin" msgid="4481095209503956916">"Désinstaller l\'application"</string>
+ <string name="remove_device_admin" msgid="3143059558744287259">"Désactiver cette appli d\'administration d\'appareil"</string>
+ <string name="uninstall_device_admin" msgid="4481095209503956916">"Désinstaller l\'appli"</string>
<string name="remove_and_uninstall_device_admin" msgid="707912012681691559">"Désactiver et désinstaller"</string>
- <string name="select_device_admin_msg" msgid="5501360309040114486">"Applications d\'administration d\'appareils"</string>
- <string name="no_device_admins" msgid="8888779888103079854">"Il n\'y a aucune application d\'administration d\'appareil"</string>
+ <string name="select_device_admin_msg" msgid="5501360309040114486">"Applis d\'administration d\'appareils"</string>
+ <string name="no_device_admins" msgid="8888779888103079854">"Il n\'y a aucune appli d\'administration d\'appareil"</string>
<string name="no_trust_agents" msgid="8659098725864191600">"Aucun agent de confiance disponible"</string>
<string name="add_device_admin_msg" msgid="7730006568970042119">"Activer l\'appli d\'admin de l\'appareil?"</string>
- <string name="add_device_admin" msgid="6252128813507932519">"Activer l\'application d\'administration de l\'appareil"</string>
+ <string name="add_device_admin" msgid="6252128813507932519">"Activer l\'appli d\'administration de l\'appareil"</string>
<string name="device_admin_add_title" msgid="6087481040932322289">"Administrateur de l\'appareil"</string>
- <string name="device_admin_warning" msgid="1889160106787280321">"L\'activation de cette application d\'administration permettra à <xliff:g id="APP_NAME">%1$s</xliff:g> d\'effectuer les opérations suivantes :"</string>
+ <string name="device_admin_warning" msgid="1889160106787280321">"L\'activation de cette appli d\'administration permettra à <xliff:g id="APP_NAME">%1$s</xliff:g> d\'effectuer les opérations suivantes :"</string>
<string name="device_admin_warning_simplified" msgid="2715756519899116115">"Cet appareil sera géré et surveillé par <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
- <string name="device_admin_status" msgid="6332571781623084064">"Cette application d\'administration est active et permet à l\'application <xliff:g id="APP_NAME">%1$s</xliff:g> d\'effectuer les opérations suivantes :"</string>
+ <string name="device_admin_status" msgid="6332571781623084064">"Cette appli d\'administration est active et permet à l\'appli <xliff:g id="APP_NAME">%1$s</xliff:g> d\'effectuer les opérations suivantes :"</string>
<string name="profile_owner_add_title" msgid="2774489881662331549">"Activer le gestionnaire de profil?"</string>
<string name="profile_owner_add_title_simplified" msgid="2320828996993774182">"Autoriser la supervision?"</string>
- <string name="adding_profile_owner_warning" msgid="6868275476058020513">"En continuant, votre utilisateur sera géré par votre administrateur, qui pourra aussi stocker des données associées en plus de vos données personnelles.\n\nVotre administrateur peut surveiller et gérer les paramètres, l\'accès, les applications et les données associées à cet utilisateur, y compris l\'activité réseau et les données de localisation de votre appareil."</string>
+ <string name="adding_profile_owner_warning" msgid="6868275476058020513">"En continuant, votre utilisateur sera géré par votre administrateur, qui pourra aussi stocker des données associées en plus de vos données personnelles.\n\nVotre administrateur peut surveiller et gérer les paramètres, l\'accès, les applis et les données associées à cet utilisateur, y compris l\'activité réseau et les données de localisation de votre appareil."</string>
<string name="admin_disabled_other_options" msgid="8122039047419172139">"D\'autres options sont désactivées par votre administrateur"</string>
<string name="admin_more_details" msgid="4928985331640193758">"En savoir plus"</string>
<string name="notification_log_title" msgid="2812594935014664891">"Journal des notifications"</string>
@@ -2848,12 +2843,12 @@
<string name="sync_is_failing" msgid="6738004111400633331">"La synchronisation rencontre actuellement des problèmes. Elle sera rétablie sous peu."</string>
<string name="add_account_label" msgid="7134707140831385869">"Ajouter un compte"</string>
<string name="managed_profile_not_available_label" msgid="7500578232182547365">"Le profil professionnel n\'est pas encore disponible"</string>
- <string name="work_mode_label" msgid="4687734487641548872">"Applications professionnelles"</string>
+ <string name="work_mode_label" msgid="4687734487641548872">"Applis professionnelles"</string>
<string name="remove_managed_profile_label" msgid="1294933737673830431">"Retirer le profil professionnel"</string>
<string name="background_data" msgid="321903213000101158">"Données en arrière-plan"</string>
<string name="background_data_summary" msgid="6572245922513522466">"Synchronisation, envoi et réception de données à tout moment"</string>
<string name="background_data_dialog_title" msgid="1692005302993229867">"Dés. données arr.-plan?"</string>
- <string name="background_data_dialog_message" msgid="7760280837612824670">"La désactivation des données en arrière-plan économise la batterie et réduit l\'utilisation des données. Certaines applications peuvent continuer d\'utiliser la connexion Internet en arrière-plan."</string>
+ <string name="background_data_dialog_message" msgid="7760280837612824670">"La désactivation des données en arrière-plan économise la batterie et réduit l\'utilisation des données. Certaines applis peuvent continuer d\'utiliser la connexion Internet en arrière-plan."</string>
<string name="sync_enabled" msgid="5794103781356455043">"Synchronisation activée"</string>
<string name="sync_disabled" msgid="1636223106968593391">"Synchronisation désactivée"</string>
<string name="sync_error" msgid="846923369794727644">"Erreur de synchronisation"</string>
@@ -2868,7 +2863,7 @@
<string name="sync_gmail" msgid="228561698646018808">"Gmail"</string>
<string name="sync_calendar" msgid="4603704438090387251">"# CALENDAR:"</string>
<string name="sync_contacts" msgid="2376465611511325472">"Contacts"</string>
- <string name="header_application_sync_settings" msgid="7427706834875419243">"Paramètres de synchronisation de l\'application"</string>
+ <string name="header_application_sync_settings" msgid="7427706834875419243">"Paramètres de synchronisation de l\'appli"</string>
<string name="header_data_and_synchronization" msgid="453920312552838939">"Données et synchronisation"</string>
<string name="preference_change_password_title" msgid="5465821666939825972">"Modifier le mot de passe"</string>
<string name="header_account_settings" msgid="1189339410278750008">"Paramètres de compte"</string>
@@ -2887,7 +2882,7 @@
<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>
+ <string name="data_usage_empty" msgid="5619908658853726866">"Aucune donnée utilisée par les applis pendant cette période."</string>
<string name="data_usage_label_foreground" msgid="8782117644558473624">"Avant-plan"</string>
<string name="data_usage_label_background" msgid="8862781660427421859">"Arrière-plan"</string>
<string name="data_usage_app_restricted" msgid="312065316274378518">"limitée"</string>
@@ -2909,12 +2904,12 @@
<string name="data_roaming_enable_mobile" msgid="5745287603577995977">"Itinérance"</string>
<string name="data_usage_forground_label" msgid="5762048187044975428">"Premier plan :"</string>
<string name="data_usage_background_label" msgid="5363718469293175279">"Arrière-plan :"</string>
- <string name="data_usage_app_settings" msgid="5693524672522122485">"Paramètres de l\'application"</string>
+ <string name="data_usage_app_settings" msgid="5693524672522122485">"Paramètres de l\'appli"</string>
<string name="data_usage_app_restrict_background" msgid="5728840276368097276">"Données en arrière-plan"</string>
<string name="data_usage_app_restrict_background_summary" msgid="2997942775999602794">"Activer l\'utilisation de données cellulaires en arrière-plan"</string>
<string name="data_usage_app_restrict_background_summary_disabled" msgid="8213268097024597864">"Pour restreindre les données en arrière-plan, définissez un quota de données cellulaires."</string>
<string name="data_usage_app_restrict_dialog_title" msgid="5383874438677899255">"Limiter les données en arrière-plan?"</string>
- <string name="data_usage_app_restrict_dialog" msgid="5534272311979978297">"Cette fonctionnalité peut empêcher certaines applications de s\'exécuter lorsque celles-ci sont dépendantes des données en arrière-plan et que seuls des réseaux mobiles sont disponibles.\n\nVous trouverez des options plus adaptées en matière de contrôle de la consommation des données dans les paramètres de l\'application."</string>
+ <string name="data_usage_app_restrict_dialog" msgid="5534272311979978297">"Cette fonctionnalité peut empêcher certaines applis de s\'exécuter lorsque celles-ci sont dépendantes des données en arrière-plan et que seuls des réseaux mobiles sont disponibles.\n\nVous trouverez des options plus adaptées en matière de contrôle de la consommation des données dans les paramètres de l\'appli."</string>
<string name="data_usage_restrict_denied_dialog" msgid="8599940395497268584">"La limitation des données en arrière-plan n\'est possible que si vous avez défini un plafond d\'utilisation pour les données cellulaires."</string>
<string name="data_usage_auto_sync_on_dialog_title" msgid="2048411447974361181">"Activer synchro auto données?"</string>
<string name="data_usage_auto_sync_off_dialog_title" msgid="1783917145440587470">"Désactiver synchro auto données?"</string>
@@ -2927,8 +2922,8 @@
<string name="data_usage_limit_dialog_title" msgid="2053134451707801439">"Limitation de la consommation de données cellulaires"</string>
<string name="data_usage_sweep_warning" msgid="2072854703184614828"><font size="18">"<xliff:g id="NUMBER">^1</xliff:g>"</font><font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12">"alerte"</font></string>
<string name="data_usage_sweep_limit" msgid="6947019190890086284"><font size="18">"<xliff:g id="NUMBER">^1</xliff:g>"</font><font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12">"limite"</font></string>
- <string name="data_usage_uninstalled_apps" msgid="9065885396147675694">"Applications supprimées"</string>
- <string name="data_usage_uninstalled_apps_users" msgid="1262228664057122983">"Applications et utilisateurs supprimés"</string>
+ <string name="data_usage_uninstalled_apps" msgid="9065885396147675694">"Applis supprimées"</string>
+ <string name="data_usage_uninstalled_apps_users" msgid="1262228664057122983">"Applis et utilisateurs supprimés"</string>
<string name="wifi_metered_title" msgid="6623732965268033931">"Utilisation du réseau"</string>
<string name="data_usage_metered_yes" msgid="4262598072030135223">"Facturé à l\'usage"</string>
<string name="vpn_name" msgid="3806456074909253262">"Nom"</string>
@@ -2967,7 +2962,7 @@
<string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Vous êtes déjà connecté à un RPV. Si vous vous connectez à un RPV différent, votre RPV actuel sera remplacé."</string>
<string name="vpn_turn_on" msgid="3568307071295211187">"Activer"</string>
<string name="vpn_cant_connect_title" msgid="5670787575925519386">"<xliff:g id="VPN_NAME">%1$s</xliff:g> n\'est pas en mesure de se connecter"</string>
- <string name="vpn_cant_connect_message" msgid="2139148820719163694">"Cette application ne prend pas en charge le RPV permanent"</string>
+ <string name="vpn_cant_connect_message" msgid="2139148820719163694">"Cette appli ne prend pas en charge le RPV permanent"</string>
<string name="vpn_title" msgid="3068868814145870274">"RPV"</string>
<string name="vpn_create" msgid="7546073242936894638">"Ajouter un profil RPV"</string>
<string name="vpn_menu_edit" msgid="5100387853773792379">"Modifier le profil"</string>
@@ -2975,7 +2970,7 @@
<string name="vpn_menu_lockdown" msgid="5284041663859541007">"RPV permanent"</string>
<string name="vpn_no_vpns_added" msgid="7387080769821533728">"Aucun RPV ajouté"</string>
<string name="vpn_always_on_summary" msgid="2171252372476858166">"Rester connecté au RPV en permanence"</string>
- <string name="vpn_always_on_summary_not_supported" msgid="9084872130449368437">"Non compatible avec cette application"</string>
+ <string name="vpn_always_on_summary_not_supported" msgid="9084872130449368437">"Non compatible avec cette appli"</string>
<string name="vpn_always_on_summary_active" msgid="175877594406330387">"Toujours activé"</string>
<string name="vpn_insecure_summary" msgid="4450920215186742859">"Non sécurisé"</string>
<string name="vpn_require_connection" msgid="1027347404470060998">"Bloquer les connexions sans RPV"</string>
@@ -3018,9 +3013,9 @@
<string name="ssl_ca_cert_warning" msgid="3898387588657346106">"Le réseau peut être surveillé"</string>
<string name="done_button" msgid="6269449526248267">"Terminé"</string>
<string name="ssl_ca_cert_dialog_title" msgid="1032088078702042090">"{count,plural, =1{Faire confiance au certificat ou le retirer}one{Faire confiance au certificat ou le retirer}other{Faire confiance aux certificats ou les retirer}}"</string>
- <string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{{orgName} a installé une autorité de certification sur votre appareil, ce qui peut lui permettre de surveiller l\'activité de votre appareil sur le réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, communiquez avec votre administrateur.}one{{orgName} a installé une autorité de certification sur votre appareil, ce qui peut lui permettre de surveiller l\'activité de votre appareil sur le réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, communiquez avec votre administrateur.}other{{orgName} a installé des autorités de certification sur votre appareil, ce qui peut lui permettre de surveiller l\'activité de votre appareil sur le réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ces certificats, communiquez avec votre administrateur.}}"</string>
- <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} a installé une autorité de certification pour votre profil professionnel, ce qui peut lui permettre de surveiller l\'activité professionnelle sur le réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, communiquez avec votre administrateur.}one{{orgName} a installé une autorité de certification pour votre profil professionnel, ce qui peut lui permettre de surveiller l\'activité professionnelle sur le réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, communiquez avec votre administrateur.}other{{orgName} a installé des autorités de certification pour votre profil professionnel, ce qui peut lui permettre de surveiller l\'activité professionnelle sur le réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ces certificats, communiquez avec votre administrateur.}}"</string>
- <string name="ssl_ca_cert_warning_message" msgid="4374052724815563051">"Un tiers peut surveiller votre activité réseau, y compris les courriels, les applications et les sites Web sécurisés. \n\nUn certificat de confiance installé sur votre appareil rend cela possible."</string>
+ <string name="ssl_ca_cert_info_message_device_owner" msgid="7528581447864707873">"{numberOfCertificates,plural, =1{{orgName} a installé une autorité de certification sur votre appareil, ce qui peut lui permettre de surveiller l\'activité de votre appareil sur le réseau, y compris les courriels, les applis et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, communiquez avec votre administrateur.}one{{orgName} a installé une autorité de certification sur votre appareil, ce qui peut lui permettre de surveiller l\'activité de votre appareil sur le réseau, y compris les courriels, les applis et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, communiquez avec votre administrateur.}other{{orgName} a installé des autorités de certification sur votre appareil, ce qui peut lui permettre de surveiller l\'activité de votre appareil sur le réseau, y compris les courriels, les applis et les sites Web sécurisés.\n\nPour en savoir plus sur ces certificats, communiquez avec votre administrateur.}}"</string>
+ <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} a installé une autorité de certification pour votre profil professionnel, ce qui peut lui permettre de surveiller l\'activité professionnelle sur le réseau, y compris les courriels, les applis et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, communiquez avec votre administrateur.}one{{orgName} a installé une autorité de certification pour votre profil professionnel, ce qui peut lui permettre de surveiller l\'activité professionnelle sur le réseau, y compris les courriels, les applis et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, communiquez avec votre administrateur.}other{{orgName} a installé des autorités de certification pour votre profil professionnel, ce qui peut lui permettre de surveiller l\'activité professionnelle sur le réseau, y compris les courriels, les applis et les sites Web sécurisés.\n\nPour en savoir plus sur ces certificats, communiquez avec votre administrateur.}}"</string>
+ <string name="ssl_ca_cert_warning_message" msgid="4374052724815563051">"Un tiers peut surveiller votre activité réseau, y compris les courriels, les applis et les sites Web sécurisés. \n\nUn certificat de confiance installé sur votre appareil rend cela possible."</string>
<string name="ssl_ca_cert_settings_button" msgid="2044927302268394991">"{count,plural, =1{Vérifier le certificat}one{Vérifier le certificat}other{Vérifier les certificats}}"</string>
<string name="user_settings_title" msgid="9208831545558787202">"Utilisateurs"</string>
<string name="user_list_title" msgid="1387379079186123404">"Utilisateurs et profils"</string>
@@ -3042,21 +3037,21 @@
<string name="user_confirm_remove_title" msgid="3626559103278006002">"Supprimer cet utilisateur?"</string>
<string name="user_profile_confirm_remove_title" msgid="3131574314149375354">"Supprimer ce profil?"</string>
<string name="work_profile_confirm_remove_title" msgid="6229618888167176036">"Retirer le profil professionnel?"</string>
- <string name="user_confirm_remove_message" msgid="362545924965977597">"L\'ensemble des applications et des données seront supprimées."</string>
- <string name="work_profile_confirm_remove_message" msgid="1037294114103024478">"Toutes les applications et les données de ce profil seront supprimées si vous continuez."</string>
- <string name="user_profile_confirm_remove_message" msgid="3641289528179850718">"L\'ensemble des applications et des données seront supprimées."</string>
+ <string name="user_confirm_remove_message" msgid="362545924965977597">"L\'ensemble des applis et des données seront supprimées."</string>
+ <string name="work_profile_confirm_remove_message" msgid="1037294114103024478">"Toutes les applis et les données de ce profil seront supprimées si vous continuez."</string>
+ <string name="user_profile_confirm_remove_message" msgid="3641289528179850718">"L\'ensemble des applis et des données seront supprimées."</string>
<string name="user_adding_new_user" msgid="7439602720177181412">"Ajout de l\'utilisateur…"</string>
<string name="user_delete_user_description" msgid="7764153465503821011">"Supprimer l\'utilisateur"</string>
<string name="user_delete_button" msgid="3833498650182594653">"Supprimer"</string>
- <string name="user_exit_guest_confirm_message" msgid="8995296853928816554">"Toutes les applications et les données de cette session seront supprimées."</string>
+ <string name="user_exit_guest_confirm_message" msgid="8995296853928816554">"Toutes les applis et les données de cette session seront supprimées."</string>
<string name="user_exit_guest_dialog_remove" msgid="7067727314172605181">"Supprimer"</string>
<string name="guest_category_title" msgid="5562663588315329152">"Invité (vous)"</string>
<string name="user_category_title" msgid="4368580529662699083">"Utilisateurs"</string>
<string name="other_user_category_title" msgid="7089976887307643217">"Autres utilisateurs"</string>
<string name="remove_guest_on_exit" msgid="8202972371459611066">"Supprimer l\'activité d\'invité"</string>
- <string name="remove_guest_on_exit_summary" msgid="3969962695703280353">"Supprimez toutes les applications et données d\'invité en quittant le mode Invité"</string>
+ <string name="remove_guest_on_exit_summary" msgid="3969962695703280353">"Supprimez toutes les applis et données d\'invité en quittant le mode Invité"</string>
<string name="remove_guest_on_exit_dialog_title" msgid="2310442892536079416">"Supprimer l\'activité d\'invité?"</string>
- <string name="remove_guest_on_exit_dialog_message" msgid="8112409834021851883">"Les applications et les données de cette session d\'invité seront supprimées maintenant, et toutes les activités d\'invité futures seront supprimées chaque fois que vous quitterez le mode Invité"</string>
+ <string name="remove_guest_on_exit_dialog_message" msgid="8112409834021851883">"Les applis et les données de cette session d\'invité seront supprimées maintenant, et toutes les activités d\'invité futures seront supprimées chaque fois que vous quitterez le mode Invité"</string>
<string name="remove_guest_on_exit_keywords" msgid="4961310523576166193">"supprimer, invité, activité, retirer, données, visiteur, effacer"</string>
<string name="enable_guest_calling" msgid="4620657197834392094">"Permettre à l\'invité de passer des appels téléphoniques"</string>
<string name="enable_guest_calling_summary" msgid="4748224917641204782">"L\'historique des appels sera partagé avec l\'utilisateur invité"</string>
@@ -3070,14 +3065,14 @@
<string name="emergency_info_title" msgid="8233682750953695582">"Coordonnées d\'urgence"</string>
<string name="emergency_info_summary" msgid="8463622253016757697">"Information et contacts pour <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
<string name="open_app_button" msgid="5025229765547191710">"Ouvrir <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
- <string name="application_restrictions" msgid="276179173572729205">"Autoriser des applications et des contenus"</string>
- <string name="apps_with_restrictions_header" msgid="5277698582872267931">"Applications avec restrictions"</string>
+ <string name="application_restrictions" msgid="276179173572729205">"Autoriser des applis et des contenus"</string>
+ <string name="apps_with_restrictions_header" msgid="5277698582872267931">"Applis avec restrictions"</string>
<string name="apps_with_restrictions_settings_button" msgid="2648355133416902221">"Développer paramètres applis"</string>
- <string name="user_choose_copy_apps_to_another_user" msgid="5914037067347012870">"Choisir les applications à installer"</string>
+ <string name="user_choose_copy_apps_to_another_user" msgid="5914037067347012870">"Choisir les applis à installer"</string>
<string name="user_copy_apps_menu_title" msgid="5354300105759670300">"Installer les applis proposées"</string>
<string name="nfc_payment_settings_title" msgid="2043139180030485500">"Paiements sans contact"</string>
- <string name="nfc_default_payment_settings_title" msgid="2150504446774382261">"Application de paiement par défaut"</string>
- <string name="nfc_default_payment_footer" msgid="978535088340021360">"Pour effectuer un paiement à l\'aide d\'une application, approchez l\'arrière de votre appareil du terminal"</string>
+ <string name="nfc_default_payment_settings_title" msgid="2150504446774382261">"Appli de paiement par défaut"</string>
+ <string name="nfc_default_payment_footer" msgid="978535088340021360">"Pour effectuer un paiement à l\'aide d\'une appli, approchez l\'arrière de votre appareil du terminal"</string>
<string name="nfc_more_details" msgid="1700713533074275233">"En savoir plus"</string>
<string name="nfc_default_payment_workapp_confirmation_title" msgid="746921251872504687">"Appli pro par défaut pour les paiements?"</string>
<string name="nfc_default_payment_workapp_confirmation_message_title" msgid="1533022606333010329">"Pour les paiements avec une appli pro :"</string>
@@ -3088,19 +3083,19 @@
<string name="nfc_payment_default" msgid="3769788268378614608">"Mode de paiement par défaut"</string>
<string name="nfc_payment_default_not_set" msgid="6471905683119084622">"Non défini"</string>
<string name="nfc_payment_app_and_desc" msgid="2607417639227030398">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
- <string name="nfc_payment_use_default" msgid="6127665705799658860">"Utiliser l\'application de paiement par défaut"</string>
+ <string name="nfc_payment_use_default" msgid="6127665705799658860">"Utiliser l\'appli de paiement par défaut"</string>
<string name="nfc_payment_use_default_dialog" msgid="8556328090777785383">"Utiliser l\'appli de paiement par défaut"</string>
<string name="nfc_payment_favor_default" msgid="4508491832174644772">"Toujours"</string>
- <string name="nfc_payment_favor_open" msgid="8554643344050373346">"Sauf si une autre application de paiement est ouverte"</string>
+ <string name="nfc_payment_favor_open" msgid="8554643344050373346">"Sauf si une autre appli de paiement est ouverte"</string>
<string name="nfc_payment_pay_with" msgid="3001320460566523453">"À un terminal sans contact, payer avec :"</string>
<string name="nfc_how_it_works_title" msgid="1363791241625771084">"Paiement à un terminal"</string>
- <string name="nfc_how_it_works_content" msgid="1141382684788210772">"Configurez une application de paiement. Il suffit ensuite de poser l\'arrière de votre téléphone sur n\'importe quel terminal disposant du symbole Sans contact."</string>
+ <string name="nfc_how_it_works_content" msgid="1141382684788210772">"Configurez une appli de paiement. Il suffit ensuite de poser l\'arrière de votre téléphone sur n\'importe quel terminal disposant du symbole Sans contact."</string>
<string name="nfc_how_it_works_got_it" msgid="4717868843368296630">"OK"</string>
<string name="nfc_more_title" msgid="1041094244767216498">"Plus…"</string>
- <string name="nfc_payment_set_default_label" msgid="7395939287766230293">"Définissez l\'application de paiement par défaut"</string>
- <string name="nfc_payment_update_default_label" msgid="8201975914337221246">"Mettez à jour l\'application de paiement par défaut"</string>
+ <string name="nfc_payment_set_default_label" msgid="7395939287766230293">"Définissez l\'appli de paiement par défaut"</string>
+ <string name="nfc_payment_update_default_label" msgid="8201975914337221246">"Mettez à jour l\'appli de paiement par défaut"</string>
<string name="nfc_payment_set_default" msgid="4101484767872365195">"À un terminal sans contact, payer avec <xliff:g id="APP">%1$s</xliff:g>"</string>
- <string name="nfc_payment_set_default_instead_of" msgid="565237441045013280">"À un terminal sans contact, payer avec <xliff:g id="APP_0">%1$s</xliff:g>.\n\nCette application remplace <xliff:g id="APP_1">%2$s</xliff:g> comme application de paiement par défaut."</string>
+ <string name="nfc_payment_set_default_instead_of" msgid="565237441045013280">"À un terminal sans contact, payer avec <xliff:g id="APP_0">%1$s</xliff:g>.\n\nCette appli remplace <xliff:g id="APP_1">%2$s</xliff:g> comme appli de paiement par défaut."</string>
<string name="nfc_payment_btn_text_set_deault" msgid="1821065137209590196">"Définir par défaut"</string>
<string name="nfc_payment_btn_text_update" msgid="5159700960497443832">"Mettre à jour"</string>
<string name="nfc_work_text" msgid="2496515165821504077">"Travail"</string>
@@ -3144,18 +3139,18 @@
<string name="auto_data_switch_title" msgid="5862200603753603464">"Basculer entre les données cellulaires automatiquement"</string>
<string name="auto_data_switch_summary" msgid="1934340931995429057">"Utilisez ce réseau en cas de meilleure disponibilité"</string>
<string name="work_sim_title" msgid="8999872928646924429">"Carte SIM professionnelle"</string>
- <string name="user_restrictions_title" msgid="4068914244980335993">"Accès aux applications et au contenu"</string>
+ <string name="user_restrictions_title" msgid="4068914244980335993">"Accès aux applis et au contenu"</string>
<string name="user_rename" msgid="8735940847878484249">"RENOMMER"</string>
<string name="app_restrictions_custom_label" msgid="6949268049087435132">"Définir des restrictions d\'applis"</string>
<string name="user_restrictions_controlled_by" msgid="2821526006742851624">"Contrôlées par <xliff:g id="APP">%1$s</xliff:g>"</string>
- <string name="app_sees_restricted_accounts" msgid="3526008344222566318">"Cette application peut accéder à vos comptes."</string>
- <string name="app_sees_restricted_accounts_and_controlled_by" msgid="8338520379923447143">"Cette application peut accéder à vos comptes. Contrôlée par <xliff:g id="APP">%1$s</xliff:g>."</string>
+ <string name="app_sees_restricted_accounts" msgid="3526008344222566318">"Cette appli peut accéder à vos comptes."</string>
+ <string name="app_sees_restricted_accounts_and_controlled_by" msgid="8338520379923447143">"Cette appli peut accéder à vos comptes. Contrôlée par <xliff:g id="APP">%1$s</xliff:g>."</string>
<string name="restriction_wifi_config_title" msgid="2630656989926554685">"Wi‑Fi et données cellulaires"</string>
<string name="restriction_wifi_config_summary" msgid="920419010472168694">"Autoriser les modifications des paramètres du Wi‑Fi et des données cellulaires"</string>
<string name="restriction_bluetooth_config_title" msgid="220586273589093821">"Bluetooth"</string>
<string name="restriction_bluetooth_config_summary" msgid="7558879931011271603">"Autoriser les modifications des associations et des paramètres Bluetooth"</string>
<string name="restriction_location_enable_title" msgid="4872281754836538066">"Position"</string>
- <string name="restriction_location_enable_summary" msgid="7139292323897390221">"Autoriser les applications à utiliser vos données de localisation"</string>
+ <string name="restriction_location_enable_summary" msgid="7139292323897390221">"Autoriser les applis à utiliser vos données de localisation"</string>
<string name="wizard_back" msgid="8257697435061870191">"Précédent"</string>
<string name="wizard_next" msgid="3884832431439072471">"SUIVANT"</string>
<string name="wizard_back_adoptable" msgid="1447814356855134183">"Formater autrement"</string>
@@ -3198,15 +3193,15 @@
<string name="connected_devices_dashboard_android_auto_no_driving_mode_summary" msgid="6426996842202276640">"Bluetooth, Android Auto, CCP"</string>
<string name="connected_devices_dashboard_android_auto_no_nfc_no_driving_mode" msgid="1672426693308438634">"Bluetooth, Android Auto"</string>
<string name="nfc_and_payment_settings_payment_off_nfc_off_summary" msgid="7132040463607801625">"Non accessible parce que la technologie CCP est désactivée"</string>
- <string name="nfc_and_payment_settings_no_payment_installed_summary" msgid="4879818114908207465">"Pour utiliser la fonctionnalité, installez d\'abord une application de paiement"</string>
- <string name="app_and_notification_dashboard_summary" msgid="8047683010984186106">"Applications récentes, applications par défaut"</string>
- <string name="notification_settings_work_profile" msgid="6076211850526353975">"Les applications du profil professionnel n\'ont pas accès aux notifications."</string>
+ <string name="nfc_and_payment_settings_no_payment_installed_summary" msgid="4879818114908207465">"Pour utiliser la fonctionnalité, installez d\'abord une appli de paiement"</string>
+ <string name="app_and_notification_dashboard_summary" msgid="8047683010984186106">"Applis récentes, applis par défaut"</string>
+ <string name="notification_settings_work_profile" msgid="6076211850526353975">"Les applis du profil professionnel n\'ont pas accès aux notifications."</string>
<string name="account_dashboard_title" msgid="8228773251948253914">"Mots de passe et comptes"</string>
<string name="account_dashboard_default_summary" msgid="7976899924144356939">"Suggestions pour la connexion et le remplissage automatique"</string>
- <string name="app_default_dashboard_title" msgid="4071015747629103216">"Applications par défaut"</string>
- <string name="cloned_apps_dashboard_title" msgid="5542076801222950921">"Applications clonées"</string>
- <string name="desc_cloned_apps_intro_text" msgid="1369621522882622476">"Créez une deuxième instance d\'une application afin de pouvoir utiliser deux comptes en même temps."</string>
- <string name="desc_cloneable_app_list_text" msgid="3354586725814708688">"Applications qui peuvent être clonées."</string>
+ <string name="app_default_dashboard_title" msgid="4071015747629103216">"Applis par défaut"</string>
+ <string name="cloned_apps_dashboard_title" msgid="5542076801222950921">"Applis clonées"</string>
+ <string name="desc_cloned_apps_intro_text" msgid="1369621522882622476">"Créez une deuxième instance d\'une appli afin de pouvoir utiliser deux comptes en même temps."</string>
+ <string name="desc_cloneable_app_list_text" msgid="3354586725814708688">"Applis qui peuvent être clonées."</string>
<string name="cloned_apps_summary" msgid="8805362440770795709">"<xliff:g id="CLONED_APPS_COUNT">%1$s</xliff:g> clonée(s), <xliff:g id="ALLOWED_APPS_COUNT">%2$d</xliff:g> disponible(s) pour le clonage"</string>
<string name="delete_all_app_clones" msgid="3489053361980624999">"Supprimer tous les clones d\'applis"</string>
<string name="delete_all_app_clones_failure" msgid="6821033414547132335">"Supprimer les clones d\'applis (échec)"</string>
@@ -3215,13 +3210,13 @@
<string name="cloned_app_creation_toast_summary" msgid="3854494347144867870">"Création d\'un clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> en cours…"</string>
<string name="cloned_app_created_toast_summary" msgid="755225403495544163">"Clone de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> créé"</string>
<string name="system_dashboard_summary" msgid="7400745270362833832">"Langues, gestes, heure, sauvegarde"</string>
- <string name="languages_setting_summary" msgid="2650807397396180351">"Langues du système, langues des applications, préférences régionales, reconnaissance vocale"</string>
+ <string name="languages_setting_summary" msgid="2650807397396180351">"Langues du système, langues des applis, préférences régionales, reconnaissance vocale"</string>
<string name="keywords_wifi" msgid="8156528242318351490">"wifi, wi-fi, connexion réseau, internet, sans fil, données, wi fi"</string>
<string name="keywords_wifi_notify_open_networks" msgid="6580896556389306636">"notification Wi‑Fi, notification wifi"</string>
<string name="keywords_wifi_data_usage" msgid="4718555409695862085">"utilisation de données"</string>
<string name="keywords_time_format" msgid="5384803098766166820">"Utiliser le format 24 heures"</string>
<string name="keywords_app_default" msgid="8977706259156428770">"Ouvrir avec"</string>
- <string name="keywords_applications_settings" msgid="999926810912037792">"Applications"</string>
+ <string name="keywords_applications_settings" msgid="999926810912037792">"Applis"</string>
<string name="keywords_time_zone" msgid="6402919157244589055">"fuseau horaire"</string>
<string name="keywords_draw_overlay" msgid="3170036145197260392">"Bulle de clavardage, système, alerte, fenêtre, boîte de dialogue, écran, superposition autres applis, dessin"</string>
<string name="keywords_flashlight" msgid="2133079265697578183">"Lampe de poche, lumière"</string>
@@ -3254,10 +3249,10 @@
<string name="keywords_users" msgid="3497517660077620843">"restriction, restreindre, restreint"</string>
<string name="keywords_keyboard_and_ime" msgid="4741098648730042570">"correction de texte, corriger, son, vibreur, automatique, langue, geste, suggérer, suggestion, thème, choquant, mot, type, emoji, international"</string>
<string name="keywords_reset_apps" msgid="8254315757754930862">"réinitialiser, préférences, par défaut"</string>
- <string name="keywords_all_apps" msgid="9016323378609007166">"applis, télécharger, applications, système"</string>
- <string name="keywords_app_permissions" msgid="2061773665663541610">"applications, autorisations, sécurité"</string>
- <string name="keywords_default_apps" msgid="4601664230800605416">"applications, par défaut"</string>
- <string name="keywords_ignore_optimizations" msgid="8967142288569785145">"ignorer les optimisations, mise en veille, mode veille des application"</string>
+ <string name="keywords_all_apps" msgid="9016323378609007166">"applis, télécharger, applis, système"</string>
+ <string name="keywords_app_permissions" msgid="2061773665663541610">"applis, autorisations, sécurité"</string>
+ <string name="keywords_default_apps" msgid="4601664230800605416">"applis, par défaut"</string>
+ <string name="keywords_ignore_optimizations" msgid="8967142288569785145">"ignorer les optimisations, mise en veille, mode veille des appli"</string>
<string name="keywords_color_mode" msgid="1193896024705705826">"vibrantes, rvb, srvb, couleurs, naturelles, standard"</string>
<string name="keywords_screen_resolution" msgid="6652125115386722875">"FHD, QHD, résolution, 1080p, 1440p"</string>
<string name="keywords_color_temperature" msgid="8159539138837118453">"température, couleur, D65, D73, blanc, jaune, bleu, chaud, froid"</string>
@@ -3336,7 +3331,7 @@
<string name="notification_volume_disabled_summary" msgid="8679988555852056079">"Inaccessible parce que la sonnerie est désactivée"</string>
<string name="ringtone_title" msgid="3271453110387368088">"Sonnerie du téléphone"</string>
<string name="notification_ringtone_title" msgid="6924501621312095512">"Son de notification par défaut"</string>
- <string name="notification_unknown_sound_title" msgid="1319708450698738980">"Son fourni par l\'application"</string>
+ <string name="notification_unknown_sound_title" msgid="1319708450698738980">"Son fourni par l\'appli"</string>
<string name="notification_sound_default" msgid="8630353701915294299">"Son de notification par défaut"</string>
<string name="alarm_ringtone_title" msgid="6680761007731764726">"Son de l\'alarme par défaut"</string>
<string name="vibrate_when_ringing_option_ramping_ringer" msgid="2798848945803840348">"Vibrer en premier, puis sonnerie graduelle"</string>
@@ -3368,7 +3363,7 @@
<string name="zen_modes_list_title" msgid="5138745349253275428">"Modes prioritaires"</string>
<!-- no translation found for zen_modes_add_mode (4806287336036228772) -->
<skip />
- <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Recevez uniquement les notifications des personnes et des applications importantes"</string>
+ <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Recevez uniquement les notifications des personnes et des applis importantes"</string>
<string name="zen_mode_select_schedule" msgid="5135520719771212697">"Sélectionner le type d\'activation"</string>
<string name="zen_mode_select_schedule_time" msgid="1761728920617757652">"Heure"</string>
<string name="zen_mode_select_schedule_time_example" msgid="3071816060919446355">"P. ex. « De 9 h 30 à 17 h »"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Créer un mode"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personnalisé"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limiter les interruptions"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activer le mode Ne pas déranger"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Les alarmes et les sons des éléments multimédias peuvent provoquer des interruptions"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Définissez un horaire"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programmer"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Activer automatiquement"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Horaire"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Tél. en silence à certains moments"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Créer des règles pour le mode Ne pas déranger"</string>
@@ -3452,7 +3448,7 @@
<string name="zen_mode_block_effect_light" msgid="1997222991427784993">"Ne pas faire clignoter la lumière"</string>
<string name="zen_mode_block_effect_peek" msgid="2525844009475266022">"Ne pas afficher de notifications à l\'écran"</string>
<string name="zen_mode_block_effect_status" msgid="5765965061064691918">"Masquer les icônes de la barre d\'état dans le haut de l\'écran"</string>
- <string name="zen_mode_block_effect_badge" msgid="332151258515152429">"Masquer les points de notification sur les icônes d\'application"</string>
+ <string name="zen_mode_block_effect_badge" msgid="332151258515152429">"Masquer les points de notification sur les icônes d\'appli"</string>
<string name="zen_mode_block_effect_ambient" msgid="1247740599476031543">"Ne pas réactiver pour les notifications"</string>
<string name="zen_mode_block_effect_list" msgid="7549367848660137118">"Masquer du volet déroulant"</string>
<string name="zen_mode_block_effect_summary_none" msgid="6688519142395714659">"Jamais"</string>
@@ -3471,7 +3467,7 @@
<string name="zen_mode_settings_dnd_manual_end_time" msgid="8251503918238985549">"Le mode Ne pas déranger est activé jusqu\'à <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
<string name="zen_mode_settings_dnd_manual_indefinite" msgid="1436568478062106132">"Le mode Ne pas déranger restera actif jusqu\'à ce que vous le désactiviez"</string>
<string name="zen_mode_settings_dnd_automatic_rule" msgid="1958092329238152236">"Le mode Ne pas déranger a été activé automatiquement par un horaire (<xliff:g id="RULE_NAME">%s</xliff:g>)"</string>
- <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="3401685760954156067">"Le mode Ne pas déranger a été activé par une application (<xliff:g id="APP_NAME">%s</xliff:g>)"</string>
+ <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="3401685760954156067">"Le mode Ne pas déranger a été activé par une appli (<xliff:g id="APP_NAME">%s</xliff:g>)"</string>
<string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6566115866660865385">"Le mode Ne pas déranger est activé <xliff:g id="RULE_NAMES">%s</xliff:g>, avec des paramètres personnalisés."</string>
<string name="zen_mode_settings_dnd_custom_settings_footer_link" msgid="8255159194653341835">" "<annotation id="link">"Afficher les paramètres personnalisés"</annotation></string>
<string name="zen_interruption_level_priority" msgid="4854123502362861192">"Prioritaires seulement"</string>
@@ -3485,7 +3481,7 @@
<string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Désactivé}=1{Désactivé : 1 horaire peut s\'activer automatiquement}one{Désactivé : # horaire peut s\'activer automatiquement}other{Désactivé : # horaires peuvent s\'activer automatiquement}}"</string>
<string name="zen_category_behavior" msgid="3214056473947178507">"Ce qui peut interrompre le mode Ne pas déranger"</string>
<string name="zen_category_people" msgid="8252926021894933047">"Personnes"</string>
- <string name="zen_category_apps" msgid="1167374545618451925">"Applications"</string>
+ <string name="zen_category_apps" msgid="1167374545618451925">"Applis"</string>
<string name="zen_category_exceptions" msgid="1316097981052752811">"Alarmes et autres interruptions"</string>
<string name="zen_category_schedule" msgid="2003707171924226212">"Horaires"</string>
<string name="zen_category_duration" msgid="7515850842082631460">"Durée des paramètres rapides"</string>
@@ -3545,17 +3541,18 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"ouvrir la notification"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Autoriser le report des notifications"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Pastille de notification sur l\'icône de l\'appli"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Groupes de notifications"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bulles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bulles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Afficher cette conversation sous forme de bulles"</string>
- <string name="bubbles_conversation_toggle_summary" msgid="720229032254323578">"Afficher une icône flottante par-dessus les applications"</string>
+ <string name="bubbles_conversation_toggle_summary" msgid="720229032254323578">"Afficher une icône flottante par-dessus les applis"</string>
<string name="bubbles_feature_disabled_dialog_title" msgid="1794193899792284007">"Activer les bulles à l\'échelle de l\'appareil?"</string>
- <string name="bubbles_feature_disabled_dialog_text" msgid="5275666953364031055">"L\'activation des bulles pour cette application activera aussi les bulles pour votre appareil.\n\nCela a un impact sur les autres applications ou les conversations qui peuvent s\'afficher en bulles."</string>
+ <string name="bubbles_feature_disabled_dialog_text" msgid="5275666953364031055">"L\'activation des bulles pour cette appli activera aussi les bulles pour votre appareil.\n\nCela a un impact sur les autres applis ou les conversations qui peuvent s\'afficher en bulles."</string>
<string name="bubbles_feature_disabled_button_approve" msgid="2042628067101419871">"Activer"</string>
<string name="bubbles_feature_disabled_button_cancel" msgid="8963409459448350600">"Annuler"</string>
<string name="notifications_bubble_setting_on_summary" msgid="4641572377430901196">"Activées : les conversations peuvent s\'afficher sous forme d\'icônes flottantes"</string>
- <string name="notifications_bubble_setting_title" msgid="8287649393774855268">"Autoriser les applications à afficher des bulles"</string>
- <string name="notifications_bubble_setting_description" msgid="7336770088735025981">"Certaines conversations s\'afficheront sous forme d\'icônes flottantes superposées aux autres applications"</string>
+ <string name="notifications_bubble_setting_title" msgid="8287649393774855268">"Autoriser les applis à afficher des bulles"</string>
+ <string name="notifications_bubble_setting_description" msgid="7336770088735025981">"Certaines conversations s\'afficheront sous forme d\'icônes flottantes superposées aux autres applis"</string>
<string name="bubble_app_setting_all" msgid="312524752846978277">"Toutes les conversations peuvent s\'afficher dans des bulles"</string>
<string name="bubble_app_setting_selected" msgid="4324386074198040675">"Les conversations sélectionnées peuvent s\'afficher dans des bulles"</string>
<string name="bubble_app_setting_none" msgid="8643594711863996418">"Aucune bulle n\'est autorisée"</string>
@@ -3598,7 +3595,7 @@
<string name="notification_importance_title" msgid="1545158655988342703">"Comportement"</string>
<string name="conversations_category_title" msgid="5586541340846847798">"Conversations"</string>
<string name="conversation_section_switch_title" msgid="3332885377659473775">"Section des conversations"</string>
- <string name="conversation_section_switch_summary" msgid="6123587625929439674">"Autoriser l\'application à utiliser la section des conversations"</string>
+ <string name="conversation_section_switch_summary" msgid="6123587625929439674">"Autoriser l\'appli à utiliser la section des conversations"</string>
<string name="demote_conversation_title" msgid="6355383023376508485">"Ce n\'est pas une conversation"</string>
<string name="demote_conversation_summary" msgid="4319929331165604112">"Supprimer de la section des conversations"</string>
<string name="promote_conversation_title" msgid="4731148769888238722">"C\'est une conversation"</string>
@@ -3623,7 +3620,7 @@
<string name="notification_silence_title" msgid="4085829874452944989">"Mode silencieux"</string>
<string name="notification_alert_title" msgid="1632401211722199217">"Par défaut"</string>
<string name="allow_interruption" msgid="5237201780159482716">"Autoriser les interruptions"</string>
- <string name="allow_interruption_summary" msgid="9044131663518112543">"Autoriser l\'application à émettre des sons, à vibrer et à afficher des notifications à l\'écran"</string>
+ <string name="allow_interruption_summary" msgid="9044131663518112543">"Autoriser l\'appli à émettre des sons, à vibrer et à afficher des notifications à l\'écran"</string>
<string name="notification_priority_title" msgid="5554834239080425229">"Prioritaire"</string>
<string name="notification_channel_summary_priority" msgid="7225362351439076913">"S\'affiche en haut de la section des conversations sous forme de bulle flottante et affiche la photo du profil sur l\'écran de verrouillage"</string>
<string name="convo_not_supported_summary" msgid="4285471045268268048">"<xliff:g id="APP_NAME">%1$s</xliff:g> ne prend pas en charge la majorité des fonctionnalités de conversations. Vous ne pouvez pas définir une conversation comme prioritaire, et les conversations ne s\'afficheront pas comme bulles flottantes."</string>
@@ -3643,12 +3640,12 @@
<string name="notification_assistant_title" msgid="5889201903272393099">"Notifications améliorées"</string>
<string name="notification_assistant_summary" msgid="1957783114840908887">"Recevoir des suggestions d\'actions, de réponses et plus encore"</string>
<string name="no_notification_assistant" msgid="2533323397091834096">"Aucune"</string>
- <string name="no_notification_listeners" msgid="2839354157349636000">"Aucune demande d\'accès aux notifications n\'a été envoyée pour les applications installées."</string>
+ <string name="no_notification_listeners" msgid="2839354157349636000">"Aucune demande d\'accès aux notifications n\'a été envoyée pour les applis installées."</string>
<string name="notification_access_detail_switch" msgid="46386786409608330">"Autoriser l\'accès aux notifications"</string>
<string name="notification_assistant_security_warning_summary" msgid="4846559755787348129">"Les notifications améliorées ont remplacé les notifications adaptatives Android sous Android 12. Cette fonctionnalité vous présente des suggestions d\'actions et de réponses, et organise vos notifications. \n\nLes notifications améliorées peuvent accéder au contenu de toutes les notifications, y compris les renseignements personnels comme le nom des contacts et les messages. Cette fonctionnalité peut aussi fermer des notifications ou interagir avec elles, comme répondre aux appels téléphoniques et gérer le mode Ne pas déranger."</string>
<string name="notification_listener_security_warning_title" msgid="5791700876622858363">"Autoriser <xliff:g id="SERVICE">%1$s</xliff:g> à accéder aux notifications?"</string>
- <string name="notification_listener_security_warning_summary" msgid="1131986567509818121">"L\'application <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> pourra lire toutes les notifications, y compris les renseignements personnels tels que les noms des contacts, les photos et le texte des messages que vous recevez. Cette application pourra également répéter ou fermer des notifications, ou effectuer des actions sur des boutons dans les notifications, y compris répondre à des appels téléphoniques. \n\nCette action permettra également à l\'application d\'activer et de désactiver la fonctionnalité Ne pas déranger et de modifier les paramètres connexes."</string>
- <string name="nls_warning_prompt" msgid="1486887096703743841">"L\'application <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> pourra effectuer les actions suivantes :"</string>
+ <string name="notification_listener_security_warning_summary" msgid="1131986567509818121">"L\'appli <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> pourra lire toutes les notifications, y compris les renseignements personnels tels que les noms des contacts, les photos et le texte des messages que vous recevez. Cette appli pourra également répéter ou fermer des notifications, ou effectuer des actions sur des boutons dans les notifications, y compris répondre à des appels téléphoniques. \n\nCette action permettra également à l\'appli d\'activer et de désactiver la fonctionnalité Ne pas déranger et de modifier les paramètres connexes."</string>
+ <string name="nls_warning_prompt" msgid="1486887096703743841">"L\'appli <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> pourra effectuer les actions suivantes :"</string>
<string name="nls_feature_read_title" msgid="7629713268744220437">"Lire vos notifications"</string>
<string name="nls_feature_read_summary" msgid="1064698238110273593">"Elle peut lire vos notifications, y compris les renseignements personnels, comme les contacts, les messages et les photos."</string>
<string name="nls_feature_reply_title" msgid="7925455553821362039">"Répondre aux messages"</string>
@@ -3670,10 +3667,10 @@
<string name="notification_listener_not_allowed" msgid="3352962779597846538">"Non autorisées"</string>
<string name="notif_listener_excluded_app_title" msgid="6679316209330349730">"Afficher toutes les applis"</string>
<string name="notif_listener_excluded_app_summary" msgid="2914567678047195396">"Modifier les paramètres pour chaque appli qui envoie des notifications"</string>
- <string name="notif_listener_excluded_app_screen_title" msgid="8636196723227432994">"Applications affichées sur l\'appareil"</string>
- <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_excluded_app_screen_title" msgid="8636196723227432994">"Applis affichées sur l\'appareil"</string>
+ <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Cette appli ne prend pas en charge les paramètres améliorés"</string>
<string name="notif_listener_more_settings" msgid="1348409392307208921">"Plus de paramètres"</string>
- <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Plus de paramètres sont accessibles dans cette application"</string>
+ <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Plus de paramètres sont accessibles dans cette appli"</string>
<!-- no translation found for notification_polite_title (4737150709382859870) -->
<skip />
<!-- no translation found for notification_polite_main_control_title (7267191551379543859) -->
@@ -3683,46 +3680,46 @@
<string name="notification_polite_work" msgid="8823596456640216391">"Appliquer aux profils professionnels"</string>
<string name="notification_polite_work_summary" msgid="5014189280132951378">"L\'appliquer aux applis du profil professionnel"</string>
<string name="vr_listeners_title" msgid="4960357292472540964">"Services d\'assistance pour la réalité virtuelle"</string>
- <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="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 applis 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>
- <string name="vr_listener_security_warning_summary" msgid="1888843557687017791">"L\'écouteur <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> pourra être exécuté lorsque vous utiliserez des applications en mode Réalité virtuelle."</string>
+ <string name="vr_listener_security_warning_summary" msgid="1888843557687017791">"L\'écouteur <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> pourra être exécuté lorsque vous utiliserez des applis en mode Réalité virtuelle."</string>
<string name="display_vr_pref_title" msgid="4850474436291113569">"Lorsque l\'appareil est en mode RV"</string>
<string name="display_vr_pref_low_persistence" msgid="7039841277157739871">"Réduire le flou (recommandé)"</string>
<string name="display_vr_pref_off" msgid="4008841566387432721">"Réduire le scintillement"</string>
<string name="picture_in_picture_title" msgid="9001594281840542493">"Incrustation d\'image"</string>
- <string name="picture_in_picture_empty_text" msgid="9123600661268731579">"Aucune application installée n\'est compatible avec le mode d\'image incrusté"</string>
+ <string name="picture_in_picture_empty_text" msgid="9123600661268731579">"Aucune appli installée n\'est compatible avec le mode d\'image incrusté"</string>
<string name="picture_in_picture_keywords" msgid="3605379820551656253">"image incrustée, image dans image"</string>
<string name="picture_in_picture_app_detail_title" msgid="4442235098255164650">"Incrustation d\'image"</string>
<string name="picture_in_picture_app_detail_switch" msgid="8544190716075624017">"Autoriser l\'incrustation d\'image"</string>
- <string name="picture_in_picture_app_detail_summary" msgid="2503211101305358849">"Autorisez cette application à créer une fenêtre d\'incrustation d\'image lorsqu\'elle est ouverte ou après l\'avoir quittée (par exemple, pour continuer de regarder une vidéo). Cette fenêtre se superpose aux autres applications en cours d\'utilisation."</string>
+ <string name="picture_in_picture_app_detail_summary" msgid="2503211101305358849">"Autorisez cette appli à créer une fenêtre d\'incrustation d\'image lorsqu\'elle est ouverte ou après l\'avoir quittée (par exemple, pour continuer de regarder une vidéo). Cette fenêtre se superpose aux autres applis en cours d\'utilisation."</string>
<string name="interact_across_profiles_title" msgid="7285906999927669971">"Applis professionnelles et personnelles associées"</string>
<string name="interact_across_profiles_summary_allowed" msgid="1365881452153799092">"Associées"</string>
<string name="interact_across_profiles_summary_not_allowed" msgid="5802674212788171790">"Non associées"</string>
- <string name="interact_across_profiles_empty_text" msgid="419061031064397168">"Aucune application connectée"</string>
- <string name="interact_across_profiles_keywords" msgid="5996472773111665049">"application associée profil personnel et professionnel"</string>
+ <string name="interact_across_profiles_empty_text" msgid="419061031064397168">"Aucune appli connectée"</string>
+ <string name="interact_across_profiles_keywords" msgid="5996472773111665049">"appli associée profil personnel et professionnel"</string>
<string name="interact_across_profiles_switch_enabled" msgid="7294719120282287495">"Associées"</string>
- <string name="interact_across_profiles_switch_disabled" msgid="4312196170211463988">"Associer ces applications"</string>
- <string name="interact_across_profiles_summary_1" msgid="6093976896137600231">"Les applications associées partagent leurs autorisations, et chacune peut accéder aux données de l\'autre."</string>
- <string name="interact_across_profiles_summary_2" msgid="505748305453633885">"Associez seulement des applications si vous avez confiance qu\'elles ne partageront pas de données personnelles avec votre administrateur informatique."</string>
- <string name="interact_across_profiles_summary_3" msgid="444428694843299854">"Vous pouvez dissocier des applications en tout temps dans les paramètres de confidentialité de votre appareil."</string>
- <string name="interact_across_profiles_consent_dialog_title" msgid="8530621211216508681">"Autoriser l\'application professionnelle <xliff:g id="NAME">%1$s</xliff:g> à accéder à vos données personnelles?"</string>
- <string name="interact_across_profiles_consent_dialog_summary" msgid="3949870271562055048">"Associez seulement des applications si vous avez confiance qu\'elles ne partageront pas de données personnelles avec votre administrateur informatique."</string>
- <string name="interact_across_profiles_consent_dialog_app_data_title" msgid="8436318876213958940">"Données de l\'application"</string>
- <string name="interact_across_profiles_consent_dialog_app_data_summary" msgid="6057019384328088311">"Cette application peut accéder aux données de votre application personnelle <xliff:g id="NAME">%1$s</xliff:g>."</string>
+ <string name="interact_across_profiles_switch_disabled" msgid="4312196170211463988">"Associer ces applis"</string>
+ <string name="interact_across_profiles_summary_1" msgid="6093976896137600231">"Les applis associées partagent leurs autorisations, et chacune peut accéder aux données de l\'autre."</string>
+ <string name="interact_across_profiles_summary_2" msgid="505748305453633885">"Associez seulement des applis si vous avez confiance qu\'elles ne partageront pas de données personnelles avec votre administrateur informatique."</string>
+ <string name="interact_across_profiles_summary_3" msgid="444428694843299854">"Vous pouvez dissocier des applis en tout temps dans les paramètres de confidentialité de votre appareil."</string>
+ <string name="interact_across_profiles_consent_dialog_title" msgid="8530621211216508681">"Autoriser l\'appli professionnelle <xliff:g id="NAME">%1$s</xliff:g> à accéder à vos données personnelles?"</string>
+ <string name="interact_across_profiles_consent_dialog_summary" msgid="3949870271562055048">"Associez seulement des applis si vous avez confiance qu\'elles ne partageront pas de données personnelles avec votre administrateur informatique."</string>
+ <string name="interact_across_profiles_consent_dialog_app_data_title" msgid="8436318876213958940">"Données de l\'appli"</string>
+ <string name="interact_across_profiles_consent_dialog_app_data_summary" msgid="6057019384328088311">"Cette appli peut accéder aux données de votre appli personnelle <xliff:g id="NAME">%1$s</xliff:g>."</string>
<string name="interact_across_profiles_consent_dialog_permissions_title" msgid="2316852600280487055">"Autorisations"</string>
- <string name="interact_across_profiles_consent_dialog_permissions_summary" msgid="995051542847604039">"Cette application peut utiliser les autorisations de votre application personnelle <xliff:g id="NAME">%1$s</xliff:g>, comme l\'accès à votre position, à votre espace de stockage ou à vos contacts."</string>
- <string name="interact_across_profiles_number_of_connected_apps_none" msgid="8573289199942092964">"Aucune application associée"</string>
- <string name="interact_across_profiles_number_of_connected_apps" msgid="4000424798291479207">"{count,plural, =1{# application associée}one{# application associée}other{# applications associées}}"</string>
- <string name="interact_across_profiles_install_work_app_title" msgid="2821669067014436056">"Pour connecter ces applications, installez <xliff:g id="NAME">%1$s</xliff:g> dans votre profil professionnel"</string>
- <string name="interact_across_profiles_install_personal_app_title" msgid="4790651223324866344">"Pour connecter ces applications, installez <xliff:g id="NAME">%1$s</xliff:g> dans votre profil personnel"</string>
- <string name="interact_across_profiles_install_app_summary" msgid="7715324358034968657">"Touchez pour télécharger l\'application"</string>
+ <string name="interact_across_profiles_consent_dialog_permissions_summary" msgid="995051542847604039">"Cette appli peut utiliser les autorisations de votre appli personnelle <xliff:g id="NAME">%1$s</xliff:g>, comme l\'accès à votre position, à votre espace de stockage ou à vos contacts."</string>
+ <string name="interact_across_profiles_number_of_connected_apps_none" msgid="8573289199942092964">"Aucune appli associée"</string>
+ <string name="interact_across_profiles_number_of_connected_apps" msgid="4000424798291479207">"{count,plural, =1{# appli associée}one{# appli associée}other{# applis associées}}"</string>
+ <string name="interact_across_profiles_install_work_app_title" msgid="2821669067014436056">"Pour connecter ces applis, installez <xliff:g id="NAME">%1$s</xliff:g> dans votre profil professionnel"</string>
+ <string name="interact_across_profiles_install_personal_app_title" msgid="4790651223324866344">"Pour connecter ces applis, installez <xliff:g id="NAME">%1$s</xliff:g> dans votre profil personnel"</string>
+ <string name="interact_across_profiles_install_app_summary" msgid="7715324358034968657">"Touchez pour télécharger l\'appli"</string>
<string name="manage_zen_access_title" msgid="1562322900340107269">"Accès à Ne pas déranger"</string>
<string name="zen_access_detail_switch" msgid="4183681772666138993">"Autoriser le mode Ne pas déranger"</string>
- <string name="zen_access_empty_text" msgid="3779921853282293080">"Aune application installée n\'a demandé l\'accès au mode « Ne pas déranger »"</string>
- <string name="app_notifications_off_desc" msgid="2484843759466874201">"Vous n\'avez pas autorisé les notifications de cette application"</string>
+ <string name="zen_access_empty_text" msgid="3779921853282293080">"Aune appli installée n\'a demandé l\'accès au mode « Ne pas déranger »"</string>
+ <string name="app_notifications_off_desc" msgid="2484843759466874201">"Vous n\'avez pas autorisé les notifications de cette appli"</string>
<string name="channel_notifications_off_desc" msgid="6202042207121633488">"À votre demande, Android empêche cette catégorie de notifications de s\'afficher sur cet appareil"</string>
<string name="channel_group_notifications_off_desc" msgid="9096417708500595424">"À votre demande, Android empêche ce groupe de notifications de s\'afficher sur cet appareil"</string>
- <string name="app_notifications_not_send_desc" msgid="5683060986735070528">"Cette application n\'envoie pas de notifications"</string>
+ <string name="app_notifications_not_send_desc" msgid="5683060986735070528">"Cette appli n\'envoie pas de notifications"</string>
<string name="notification_channels" msgid="1502969522886493799">"Catégories"</string>
<string name="notification_channels_other" msgid="18159805343647908">"Autre"</string>
<string name="no_channels" msgid="4716199078612071915">"Cette appli n\'a publié aucune notification"</string>
@@ -3756,8 +3753,8 @@
<string name="zen_mode_choose_rule_type" msgid="7656308563653982975">"Choisir le type d\'horaire"</string>
<string name="zen_mode_delete_rule_confirmation" msgid="6195069346439736688">"Supprimer la règle « <xliff:g id="RULE">%1$s</xliff:g> »?"</string>
<string name="zen_mode_delete_rule_button" msgid="8328729110756882244">"Supprimer"</string>
- <string name="zen_mode_app_set_behavior" msgid="4319517270279704677">"Ces paramètres ne peuvent pas être modifiés pour le moment. Une application (<xliff:g id="APP_NAME">%1$s</xliff:g>) a activé un mode Ne pas déranger personnalisé."</string>
- <string name="zen_mode_unknown_app_set_behavior" msgid="8544413884273894104">"Ces paramètres ne peuvent pas être modifiés pour le moment. Une application a activé un mode Ne pas déranger personnalisé."</string>
+ <string name="zen_mode_app_set_behavior" msgid="4319517270279704677">"Ces paramètres ne peuvent pas être modifiés pour le moment. Une appli (<xliff:g id="APP_NAME">%1$s</xliff:g>) a activé un mode Ne pas déranger personnalisé."</string>
+ <string name="zen_mode_unknown_app_set_behavior" msgid="8544413884273894104">"Ces paramètres ne peuvent pas être modifiés pour le moment. Une appli a activé un mode Ne pas déranger personnalisé."</string>
<string name="zen_mode_qs_set_behavior" msgid="3805244555649172848">"Ces paramètres ne peuvent pas être modifiés pour le moment. Un mode Ne pas déranger personnalisé a été activé manuellement."</string>
<string name="zen_schedule_rule_type_name" msgid="8071428540221112090">"Heure"</string>
<string name="zen_event_rule_type_name" msgid="1921166617081971754">"Événement"</string>
@@ -3787,7 +3784,7 @@
<string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Aucune"</string>
<string name="zen_mode_conversations_count" msgid="3199310723073707153">"{count,plural, =0{Aucune}=1{1 conversation}one{# conversation}other{# conversations}}"</string>
<string name="zen_mode_people_calls_messages_section_title" msgid="6815202112413762206">"Qui peut provoquer des interruptions"</string>
- <string name="zen_mode_people_footer" msgid="7710707353004137431">"Même si vous ne pouvez pas recevoir de notifications des applications de messagerie ou de téléphonie, les personnes que vous choisissez ici peuvent toujours vous joindre par le biais de celles-ci"</string>
+ <string name="zen_mode_people_footer" msgid="7710707353004137431">"Même si vous ne pouvez pas recevoir de notifications des applis de messagerie ou de téléphonie, les personnes que vous choisissez ici peuvent toujours vous joindre par le biais de celles-ci"</string>
<string name="zen_mode_calls_title" msgid="2078578043677037740">"Appels"</string>
<string name="zen_mode_calls" msgid="7653245854493631095">"Appels"</string>
<string name="zen_mode_calls_list" msgid="5044730950895749093">"appels"</string>
@@ -3838,20 +3835,22 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Tout"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
- <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Autoriser les applications à ignorer le mode Ne pas déranger"</string>
- <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Applications qui peuvent provoquer des interruptions"</string>
- <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Sélectionner plus d\'applications"</string>
- <string name="zen_mode_bypassing_apps_none" msgid="7944221631721778096">"Aucune application sélectionnée"</string>
- <string name="zen_mode_bypassing_apps_subtext_none" msgid="5128770411598722200">"Aucune application ne peut provoquer d\'interruption"</string>
- <string name="zen_mode_bypassing_apps_add" msgid="5031919618521327102">"Ajouter des applications"</string>
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
+ <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Autoriser les applis à ignorer le mode Ne pas déranger"</string>
+ <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Applis qui peuvent provoquer des interruptions"</string>
+ <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Sélectionner plus d\'applis"</string>
+ <string name="zen_mode_bypassing_apps_none" msgid="7944221631721778096">"Aucune appli sélectionnée"</string>
+ <string name="zen_mode_bypassing_apps_subtext_none" msgid="5128770411598722200">"Aucune appli ne peut provoquer d\'interruption"</string>
+ <string name="zen_mode_bypassing_apps_add" msgid="5031919618521327102">"Ajouter des applis"</string>
<string name="zen_mode_bypassing_apps_summary_all" msgid="4684544706511555744">"Toutes les notifications"</string>
<string name="zen_mode_bypassing_apps_summary_some" msgid="5315750826830358230">"Quelques notifications"</string>
- <string name="zen_mode_bypassing_apps_footer" msgid="1454862989340760124">"Les personnes sélectionnées peuvent toujours vous joindre, même si vous n\'autorisez pas les applications à provoquer des interruptions"</string>
- <string name="zen_mode_bypassing_apps_subtext" msgid="5258652366929842710">"{count,plural,offset:2 =0{Aucune application ne peut provoquer d\'interruption}=1{{app_1} peut provoquer des interruptions}=2{{app_1} et {app_2} peuvent provoquer des interruptions}=3{{app_1}, {app_2} et {app_3} peuvent provoquer des interruptions}one{{app_1}, {app_2} et # autre application peuvent provoquer des interruptions}other{{app_1}, {app_2} et # autres applications peuvent provoquer des interruptions}}"</string>
- <string name="zen_mode_bypassing_apps_title" msgid="371050263563164059">"Applications"</string>
+ <string name="zen_mode_bypassing_apps_footer" msgid="1454862989340760124">"Les personnes sélectionnées peuvent toujours vous joindre, même si vous n\'autorisez pas les applis à provoquer des interruptions"</string>
+ <string name="zen_mode_bypassing_apps_subtext" msgid="5258652366929842710">"{count,plural,offset:2 =0{Aucune appli ne peut provoquer d\'interruption}=1{{app_1} peut provoquer des interruptions}=2{{app_1} et {app_2} peuvent provoquer des interruptions}=3{{app_1}, {app_2} et {app_3} peuvent provoquer des interruptions}one{{app_1}, {app_2} et # autre appli peuvent provoquer des interruptions}other{{app_1}, {app_2} et # autres applis peuvent provoquer des interruptions}}"</string>
+ <string name="zen_mode_bypassing_apps_title" msgid="371050263563164059">"Applis"</string>
<string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifications qui peuvent provoquer des interruptions"</string>
<string name="zen_mode_bypassing_app_channels_toggle_all" msgid="1449462656358219116">"Autoriser toutes les notifications"</string>
- <string name="zen_mode_other_sounds_summary" msgid="8784400697494837032">"{count,plural,offset:2 =0{Rien ne peut provoquer d\'interruption}=1{{sound_category_1} peut provoquer des interruptions}=2{{sound_category_1} et {sound_category_2} peuvent provoquer des interruptions}=3{{sound_category_1}, {sound_category_2} et {sound_category_3} peuvent provoquer des interruptions}one{{sound_category_1}, {sound_category_2} et # autre application peuvent provoquer des interruptions}other{{sound_category_1}, {sound_category_2} et # autres applications peuvent provoquer des interruptions}}"</string>
+ <string name="zen_mode_other_sounds_summary" msgid="8784400697494837032">"{count,plural,offset:2 =0{Rien ne peut provoquer d\'interruption}=1{{sound_category_1} peut provoquer des interruptions}=2{{sound_category_1} et {sound_category_2} peuvent provoquer des interruptions}=3{{sound_category_1}, {sound_category_2} et {sound_category_3} peuvent provoquer des interruptions}one{{sound_category_1}, {sound_category_2} et # autre appli peuvent provoquer des interruptions}other{{sound_category_1}, {sound_category_2} et # autres applis peuvent provoquer des interruptions}}"</string>
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Rien ne peut provoquer d\'interruption"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Personne ne peut provoquer d\'interruption"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Certaines personnes peuvent provoquer des interruptions"</string>
@@ -3887,11 +3886,11 @@
<string name="nfc_setting_off" msgid="7142103438532732309">"Désactivée"</string>
<string name="screen_pinning_switch_on_text" msgid="6971386830247542552">"Activé"</string>
<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="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_title" msgid="6927227272780208966">"Épinglage d\'appli"</string>
+ <string name="app_pinning_intro" msgid="6409063008733004245">"L\'épinglage d\'appli vous permet de garder l\'appli 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="5822120806426139396">"Lorsqu\'une appli est épinglée, elle peut ouvrir d\'autres applis, et certaines données personnelles pourraient être accessibles. \n\nPour utiliser Épinglage d\'appli : \n{0,number,integer}. Activez Épinglage d\'appli \n{1,number,integer}. Ouvrez Aperçu \n{2,number,integer}. Touchez l\'icône de l\'appli dans le haut de l\'écran, puis touchez Épingler"</string>
+ <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Lorsqu\'une appli est épinglée, elle peut ouvrir d\'autres applis, 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\'appli : \n{0,number,integer}. Activez Épinglage d\'appli \n{1,number,integer}. Ouvrez Aperçu \n{2,number,integer}. Touchez l\'icône de l\'appli dans le haut de l\'écran, puis touchez Épingler"</string>
+ <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Lorsqu\'une appli est épinglée : \n\n• Certaines données personnelles pourraient être accessibles \n (comme les contacts et le contenu des courriels) \n• L\'appli épinglée peut ouvrir d\'autres applis \n\nUtilisez l\'épinglage d\'appli 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>
<string name="screen_pinning_unlock_password" msgid="4957969621904790573">"Demander le mot de passe avant d\'annuler l\'épinglage"</string>
@@ -3918,14 +3917,14 @@
<string name="managing_admin" msgid="2633920317425356619">"Géré par <xliff:g id="ADMIN_APP_LABEL">%s</xliff:g>"</string>
<string name="launch_by_default" msgid="892824422067985734">"Ouvrir par défaut"</string>
<string name="app_launch_open_domain_urls_title" msgid="4805388403977096285">"Ouvrir les liens compatibles"</string>
- <string name="app_launch_top_intro_message" msgid="137370923637482459">"Permettre aux liens Web de s\'ouvrir dans cette application"</string>
- <string name="app_launch_links_category" msgid="2380467163878760037">"Liens à ouvrir dans cette application"</string>
+ <string name="app_launch_top_intro_message" msgid="137370923637482459">"Permettre aux liens Web de s\'ouvrir dans cette appli"</string>
+ <string name="app_launch_links_category" msgid="2380467163878760037">"Liens à ouvrir dans cette appli"</string>
<string name="app_launch_supported_domain_urls_title" msgid="5088779668667217369">"Liens compatibles"</string>
<string name="app_launch_other_defaults_title" msgid="5674385877838735586">"Autres préférences par défaut"</string>
<string name="app_launch_add_link" msgid="8622558044530305811">"Ajouter un lien"</string>
- <string name="app_launch_footer" msgid="4521865035105622557">"Une application peut vérifier les liens pour les ouvrir automatiquement dans l\'application."</string>
+ <string name="app_launch_footer" msgid="4521865035105622557">"Une appli peut vérifier les liens pour les ouvrir automatiquement dans l\'appli."</string>
<string name="app_launch_verified_links_title" msgid="621908751569155356">"{count,plural, =1{# lien vérifié}one{# lien vérifié}other{# liens vérifiés}}"</string>
- <string name="app_launch_verified_links_message" msgid="190871133877476176">"{count,plural, =1{Ce lien a été vérifié et s\'ouvre automatiquement dans cette application.}one{Ce lien a été vérifié et s\'ouvre automatiquement dans cette application.}other{Ces liens ont été vérifiés et s\'ouvrent automatiquement dans cette application.}}"</string>
+ <string name="app_launch_verified_links_message" msgid="190871133877476176">"{count,plural, =1{Ce lien a été vérifié et s\'ouvre automatiquement dans cette appli.}one{Ce lien a été vérifié et s\'ouvre automatiquement dans cette appli.}other{Ces liens ont été vérifiés et s\'ouvrent automatiquement dans cette appli.}}"</string>
<string name="app_launch_dialog_ok" msgid="1446157681861409861">"OK"</string>
<string name="app_launch_verified_links_info_description" msgid="7514750232467132117">"Afficher la liste des liens vérifiés"</string>
<string name="app_launch_checking_links_title" msgid="6119228853554114201">"Vérification des liens pris en charge en cours…"</string>
@@ -3948,47 +3947,47 @@
<string name="runtime_permissions_additional_count" msgid="6071909675951786523">"{count,plural, =1{# autorisation supplémentaire}one{# autorisation supplémentaire}other{# autorisations supplémentaires}}"</string>
<string name="runtime_permissions_summary_no_permissions_granted" msgid="7456745929035665029">"Aucune autorisation accordée"</string>
<string name="runtime_permissions_summary_no_permissions_requested" msgid="7174876170116073356">"Aucune autorisation demandée"</string>
- <string name="runtime_permissions_summary_control_app_access" msgid="3744591396348990500">"Gérez l\'accès des applications à vos données"</string>
+ <string name="runtime_permissions_summary_control_app_access" msgid="3744591396348990500">"Gérez l\'accès des applis à vos données"</string>
<string name="permissions_usage_title" msgid="2942741460679049132">"Tableau de bord de confidentialité"</string>
- <string name="permissions_usage_summary" msgid="6784310472062516454">"Affichez les applications qui ont récemment utilisé les autorisations"</string>
- <string name="unused_apps" msgid="4566272194756830656">"Applications non utilisées"</string>
- <string name="unused_apps_summary" msgid="4236371818881973021">"{count,plural, =1{# application non utilisée}one{# application non utilisée}other{# applications non utilisées}}"</string>
- <string name="unused_apps_category" msgid="8954930958175500851">"Paramètres des applications inutilisées"</string>
+ <string name="permissions_usage_summary" msgid="6784310472062516454">"Affichez les applis qui ont récemment utilisé les autorisations"</string>
+ <string name="unused_apps" msgid="4566272194756830656">"Applis non utilisées"</string>
+ <string name="unused_apps_summary" msgid="4236371818881973021">"{count,plural, =1{# appli non utilisée}one{# appli non utilisée}other{# applis non utilisées}}"</string>
+ <string name="unused_apps_category" msgid="8954930958175500851">"Paramètres des applis 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>
+ <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">"Retirez les autorisations, supprimez les fichiers temporaires, arrêtez les notifications et archivez l\'appli"</string>
+ <string name="filter_all_apps" msgid="6645539744080251371">"Toutes les applis"</string>
+ <string name="filter_enabled_apps" msgid="8868356616126759124">"Applis installées"</string>
+ <string name="filter_instant_apps" msgid="2292108467020380068">"Applis instantanées"</string>
<string name="filter_notif_blocked_apps" msgid="1065653868850012325">"Désactivées"</string>
<string name="advanced_apps" msgid="7643010673326578815">"Paramètres avancés"</string>
<string name="app_permissions" msgid="8666537659217653626">"Gestionnaire des autorisations"</string>
<string name="app_data_sharing_updates_title" msgid="1694297952320402788">"Mises à jour des pratiques de partage des données pour la localisation"</string>
- <string name="app_data_sharing_updates_summary" msgid="4465929918457739443">"Passez en revue les applications qui ont changé la façon dont elles peuvent partager vos données de localisation"</string>
+ <string name="app_data_sharing_updates_summary" msgid="4465929918457739443">"Passez en revue les applis qui ont changé la façon dont elles peuvent partager vos données de localisation"</string>
<string name="tap_to_wake" msgid="3313433536261440068">"Toucher pour réveiller"</string>
<string name="tap_to_wake_summary" msgid="6641039858241611072">"Double-touchez l\'écran pour réveiller l\'appareil"</string>
<string name="domain_urls_title" msgid="7012209752049678876">"Ouverture des liens"</string>
<string name="domain_urls_summary_none" msgid="1132578967643384733">"Ne pas ouvrir les liens compatibles"</string>
<string name="domain_urls_summary_one" msgid="3312008753802762892">"Ouvrir « <xliff:g id="DOMAIN">%s</xliff:g> »"</string>
<string name="domain_urls_summary_some" msgid="1197692164421314523">"Ouvrir <xliff:g id="DOMAIN">%s</xliff:g> et d\'autres URL"</string>
- <string name="app_link_open_always" msgid="9167065494930657503">"Autoriser l\'application à gérer les liens pris en charge"</string>
+ <string name="app_link_open_always" msgid="9167065494930657503">"Autoriser l\'appli à gérer les liens pris en charge"</string>
<string name="app_link_open_ask" msgid="2422450109908936371">"Toujours demander"</string>
- <string name="app_link_open_never" msgid="5299808605386052350">"Ne pas autoriser l\'application à ouvrir les liens"</string>
- <string name="app_link_open_always_summary" msgid="4524005594295855117">"{count,plural, =1{L\'application prétend cibler # lien}one{L\'application prétend cibler # lien}other{L\'application prétend cibler # liens}}"</string>
- <string name="open_supported_links_footer" msgid="3188808142432787933">"L\'application réclame les liens suivants :"</string>
+ <string name="app_link_open_never" msgid="5299808605386052350">"Ne pas autoriser l\'appli à ouvrir les liens"</string>
+ <string name="app_link_open_always_summary" msgid="4524005594295855117">"{count,plural, =1{L\'appli prétend cibler # lien}one{L\'appli prétend cibler # lien}other{L\'appli prétend cibler # liens}}"</string>
+ <string name="open_supported_links_footer" msgid="3188808142432787933">"L\'appli réclame les liens suivants :"</string>
<string name="assist_and_voice_input_title" msgid="6317935163145135914">"Assist. et entrée vocale"</string>
<string name="default_assist_title" msgid="1182435129627493758">"Appli d\'assistant numérique"</string>
<string name="default_digital_assistant_title" msgid="5654663086385490838">"Assistant numérique par défaut"</string>
<string name="assistant_security_warning_agree" msgid="9013334158753473359">"J\'accepte"</string>
<string name="default_browser_title" msgid="8342074390782390458">"Appli de navigateur"</string>
- <string name="default_phone_title" msgid="7616730756650803827">"Application de téléphonie"</string>
+ <string name="default_phone_title" msgid="7616730756650803827">"Appli de téléphonie"</string>
<string name="system_app" msgid="1863291702508355041">"(Système)"</string>
- <string name="apps_storage" msgid="643866814746927111">"Stockage des applications"</string>
+ <string name="apps_storage" msgid="643866814746927111">"Stockage des applis"</string>
<string name="usage_access" msgid="5487993885373893282">"Accès aux données d\'utilisation"</string>
<string name="permit_usage_access" msgid="179630895262172674">"Autoriser l\'accès aux données d\'utilisation"</string>
<string name="time_spent_in_app_pref_title" msgid="25327097913383330">"Temps d\'utilisation des écrans"</string>
- <string name="usage_access_description" msgid="8547716253713890707">"L\'accès aux données d\'utilisation permet à une application d\'effectuer le suivi des applications que vous utilisez, de la fréquence d\'utilisation, du fournisseur de services, des paramètres de langue et d\'autres détails."</string>
+ <string name="usage_access_description" msgid="8547716253713890707">"L\'accès aux données d\'utilisation permet à une appli d\'effectuer le suivi des applis que vous utilisez, de la fréquence d\'utilisation, du fournisseur de services, des paramètres de langue et d\'autres détails."</string>
<string name="memory_settings_title" msgid="6582588646363308430">"Mémoire"</string>
<string name="always_running" msgid="9012705720688200252">"Toujours en cours d\'exécution (<xliff:g id="PERCENTAGE">%s</xliff:g>)"</string>
<string name="sometimes_running" msgid="7954947311082655448">"Parfois en cours d\'exécution (<xliff:g id="PERCENTAGE">%s</xliff:g>)"</string>
@@ -3999,14 +3998,14 @@
<string name="high_power_on" msgid="8778058701270819268">"Non optimisée"</string>
<string name="high_power_off" msgid="317000444619279018">"L\'utilisation de la pile est optimisée"</string>
<string name="high_power_system" msgid="3966701453644915787">"L\'optimisation de la pile n\'est pas disponible"</string>
- <string name="high_power_prompt_title" msgid="2574478825228409124">"Autoriser l\'application à toujours fonctionner en arrière-plan?"</string>
- <string name="high_power_prompt_body" msgid="6029266540782139941">"Si vous autorisez l\'exécution en arrière-plan systématique de l\'application <xliff:g id="APP_NAME">%1$s</xliff:g>, vous risquez de réduire l\'autonomie de la pile. \n\nVous pouvez modifier ce choix plus tard dans Paramètres > Applications."</string>
+ <string name="high_power_prompt_title" msgid="2574478825228409124">"Autoriser l\'appli à toujours fonctionner en arrière-plan?"</string>
+ <string name="high_power_prompt_body" msgid="6029266540782139941">"Si vous autorisez l\'exécution en arrière-plan systématique de l\'appli <xliff:g id="APP_NAME">%1$s</xliff:g>, vous risquez de réduire l\'autonomie de la pile. \n\nVous pouvez modifier ce choix plus tard dans Paramètres > Applis."</string>
<string name="battery_summary" msgid="2491764359695671207">"Usage depuis la dernière charge complète : <xliff:g id="PERCENTAGE">%1$s</xliff:g>"</string>
<string name="battery_summary_24hr" msgid="7656033283282656551">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> d\'utilisation au cours des 24 dernières heures"</string>
<string name="no_battery_summary" msgid="5769159953384122003">"Aucune utilisation de la pile depuis la dernière charge complète"</string>
<string name="share_remote_bugreport_dialog_title" msgid="1575283098565582433">"Partager le rapport de bogue?"</string>
- <string name="share_remote_bugreport_dialog_message_finished" msgid="4869053468609007680">"Votre administrateur informatique a demandé un rapport de bogue pour l\'aider à dépanner cet appareil. Les applications et les données peuvent être partagées."</string>
- <string name="share_remote_bugreport_dialog_message" msgid="8714439220818865391">"Votre administrateur informatique a demandé un rapport de bogue pour l\'aider à dépanner cet appareil. Les applications et les données peuvent être partagées. Cela pourrait temporairement ralentir votre appareil."</string>
+ <string name="share_remote_bugreport_dialog_message_finished" msgid="4869053468609007680">"Votre administrateur informatique a demandé un rapport de bogue pour l\'aider à dépanner cet appareil. Les applis et les données peuvent être partagées."</string>
+ <string name="share_remote_bugreport_dialog_message" msgid="8714439220818865391">"Votre administrateur informatique a demandé un rapport de bogue pour l\'aider à dépanner cet appareil. Les applis et les données peuvent être partagées. Cela pourrait temporairement ralentir votre appareil."</string>
<string name="sharing_remote_bugreport_dialog_message" msgid="3523877008096439251">"Ce rapport de bogue est partagé avec votre administrateur informatique. Pour en savoir plus, communiquez avec lui."</string>
<string name="share_remote_bugreport_action" msgid="7173093464692893276">"Partager"</string>
<string name="decline_remote_bugreport_action" msgid="1276509879613158895">"Refuser"</string>
@@ -4045,16 +4044,16 @@
<string name="usb_summary_UVC_power" msgid="226810354412154061">"Caméra Web et alimentation"</string>
<string name="background_check_pref" msgid="5304564658578987535">"Vérification en arrière-plan"</string>
<string name="assist_access_context_title" msgid="5201495523514096201">"Utiliser le texte affiché à l\'écran"</string>
- <string name="assist_access_context_summary" msgid="6951814413185646275">"Autorisez l\'application d\'assistance à accéder au contenu affiché à l\'écran sous forme de texte"</string>
+ <string name="assist_access_context_summary" msgid="6951814413185646275">"Autorisez l\'appli d\'assistance à accéder au contenu affiché à l\'écran sous forme de texte"</string>
<string name="assist_access_screenshot_title" msgid="4395902231753643633">"Utiliser la capture d\'écran"</string>
- <string name="assist_access_screenshot_summary" msgid="5276593070956201863">"Autorisez l\'application d\'assistance à accéder au contenu affiché à l\'écran sous forme d\'image"</string>
+ <string name="assist_access_screenshot_summary" msgid="5276593070956201863">"Autorisez l\'appli d\'assistance à accéder au contenu affiché à l\'écran sous forme d\'image"</string>
<string name="assist_flash_title" msgid="5449512572885550108">"Faire clignoter l\'écran"</string>
- <string name="assist_flash_summary" msgid="3032289860177784594">"Faites clignoter les bordures de l\'écran lorsque l\'application d\'assistance accède à du texte à partir de l\'écran ou d\'une capture d\'écran"</string>
- <string name="assist_footer" msgid="8248015363806299068">"Les applications d\'assistance peuvent vous aider en fonction de l\'information affichée à l\'écran. Certaines applications sont compatibles à la fois avec le lanceur d\'applications et les services d\'entrée vocale, vous permettant de bénéficier d\'une assistance intégrée."</string>
+ <string name="assist_flash_summary" msgid="3032289860177784594">"Faites clignoter les bordures de l\'écran lorsque l\'appli d\'assistance accède à du texte à partir de l\'écran ou d\'une capture d\'écran"</string>
+ <string name="assist_footer" msgid="8248015363806299068">"Les applis d\'assistance peuvent vous aider en fonction de l\'information affichée à l\'écran. Certaines applis sont compatibles à la fois avec le lanceur d\'applis et les services d\'entrée vocale, vous permettant de bénéficier d\'une assistance intégrée."</string>
<string name="average_memory_use" msgid="717313706368825388">"Utilisation moyenne de la mémoire"</string>
<string name="maximum_memory_use" msgid="2171779724001152933">"Utilisation max. de la mémoire"</string>
<string name="memory_usage" msgid="5594133403819880617">"Utilisation de la mémoire"</string>
- <string name="app_list_memory_use" msgid="3178720339027577869">"Utilisation de l\'application"</string>
+ <string name="app_list_memory_use" msgid="3178720339027577869">"Utilisation de l\'appli"</string>
<string name="memory_details" msgid="6133226869214421347">"Détails"</string>
<string name="memory_use_summary" msgid="3915964794146424142">"Moyenne de mémoire utilisée au cours des trois dernières heures : <xliff:g id="SIZE">%1$s</xliff:g>"</string>
<string name="no_memory_use_summary" msgid="6708111974923274436">"Aucune mémoire utilisée au cours des trois dernières heures"</string>
@@ -4064,8 +4063,8 @@
<string name="total_memory" msgid="5244174393008910567">"Mémoire totale"</string>
<string name="average_used" msgid="690235917394070169">"Utilisation moyenne (%)"</string>
<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="memory_usage_apps" msgid="5776108502569850579">"Mémoire utilisée par les applis"</string>
+ <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 appli a utilisé la mémoire depuis {time}}one{# appli a utilisé la mémoire depuis {time}}other{# applis 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>
@@ -4073,51 +4072,51 @@
<string name="memory_maximum_usage" msgid="2047013391595835607">"Utilisation maximale"</string>
<string name="no_data_usage" msgid="4665617440434654132">"Aucune donnée utilisée"</string>
<string name="zen_access_warning_dialog_title" msgid="6323325813123130154">"Autoriser l\'accès au mode Ne pas déranger pour <xliff:g id="APP">%1$s</xliff:g>?"</string>
- <string name="zen_access_warning_dialog_summary" msgid="8468714854067428987">"L\'application disposera d\'une autorisation d\'activation ou de désactivation du mode Ne pas déranger et de modification des paramètres associés."</string>
+ <string name="zen_access_warning_dialog_summary" msgid="8468714854067428987">"L\'appli disposera d\'une autorisation d\'activation ou de désactivation du mode Ne pas déranger et de modification des paramètres associés."</string>
<string name="zen_access_disabled_package_warning" msgid="6565908224294537889">"Cette fonction doit rester activée, car l\'accès aux notifications est activé"</string>
<string name="zen_access_revoke_warning_dialog_title" msgid="7377261509261811449">"Révoquer l\'accès au mode Ne pas déranger pour <xliff:g id="APP">%1$s</xliff:g>?"</string>
- <string name="zen_access_revoke_warning_dialog_summary" msgid="8689801842914183595">"Toutes les règles Ne pas déranger créées par cette application seront supprimées."</string>
+ <string name="zen_access_revoke_warning_dialog_summary" msgid="8689801842914183595">"Toutes les règles Ne pas déranger créées par cette appli seront supprimées."</string>
<string name="ignore_optimizations_on" msgid="6865583039303804932">"Ne pas optimiser"</string>
<string name="ignore_optimizations_off" msgid="9186557038453586295">"Optimiser"</string>
- <string name="ignore_optimizations_on_desc" msgid="1280043916460939932">"Cela peut épuiser la pile de votre appareil plus rapidement. L\'application pourra maintenant utiliser la pile en arrière-plan."</string>
+ <string name="ignore_optimizations_on_desc" msgid="1280043916460939932">"Cela peut épuiser la pile de votre appareil plus rapidement. L\'appli pourra maintenant utiliser la pile en arrière-plan."</string>
<string name="ignore_optimizations_off_desc" msgid="3324571675983286177">"Recommandé pour une meilleure autonomie de la pile"</string>
<string name="app_list_preference_none" msgid="1635406344616653756">"Aucune"</string>
- <string name="work_profile_usage_access_warning" msgid="3477719910927319122">"Désactiver l\'accès aux données d\'utilisation pour cette application n\'empêchera pas votre administrateur d\'effectuer le suivi de la consommation des données pour les applications de votre profil professionnel"</string>
+ <string name="work_profile_usage_access_warning" msgid="3477719910927319122">"Désactiver l\'accès aux données d\'utilisation pour cette appli n\'empêchera pas votre administrateur d\'effectuer le suivi de la consommation des données pour les applis de votre profil professionnel"</string>
<string name="draw_overlay" msgid="7902083260500573027">"Afficher par-dessus autres applis"</string>
- <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="system_alert_window_settings" msgid="6458633954424862521">"Afficher par-dessus les autres applis"</string>
+ <string name="permit_draw_overlay" msgid="4468994037192804075">"Autoriser la superposition d\'applis"</string>
+ <string name="allow_overlay_description" msgid="1607235723669496298">"Autorisez cette appli à s\'afficher par-dessus les autres que vous utilisez. Cette appli 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="allow_media_routing_description" msgid="8343709701298051207">"Autorisez cette appli à choisir l\'appareil connecté qui lit les fichiers audio ou vidéo provenant d\'autres applis. Si elle est autorisée, cette appli 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="allow_manage_external_storage_description" msgid="5707948153603253225">"Autoriser cette appli à 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\'appli 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="full_screen_intent_title" msgid="5888548315628268674">"Notifications en plein écran"</string>
<string name="permit_full_screen_intent" msgid="2414307667550523630">"Autoriser les notifications en plein écran de cette appli"</string>
<string name="footer_description_full_screen_intent" msgid="7716518411349225528">"Autoriser cette appli à afficher des notifications en plein écran lorsque l\'appareil est verrouillé. Les applis peuvent s\'en servir pour mettre en évidence des alarmes, des appels entrants ou d\'autres notifications urgentes."</string>
<string name="media_management_apps_title" msgid="8222942355578724582">"Applis de gestion des fichiers multimédias"</string>
<string name="media_management_apps_toggle_label" msgid="166724270857067456">"Autoriser l\'appli à gérer fichiers multimédias"</string>
- <string name="media_management_apps_description" msgid="8000565658455268524">"Si vous l\'autorisez à le faire, cette application peut modifier ou supprimer des fichiers multimédias créés à l\'aide d\'autres applications sans vous le demander. L\'application doit avoir l\'autorisation d\'accéder aux fichiers et aux fichiers multimédias."</string>
- <string name="keywords_media_management_apps" msgid="7499959607583088690">"éléments multimédias, fichier, gestion, gestionnaire, gérer, modifier, éditeur, appli, application, programme"</string>
+ <string name="media_management_apps_description" msgid="8000565658455268524">"Si vous l\'autorisez à le faire, cette appli peut modifier ou supprimer des fichiers multimédias créés à l\'aide d\'autres applis sans vous le demander. L\'appli doit avoir l\'autorisation d\'accéder aux fichiers et aux fichiers multimédias."</string>
+ <string name="keywords_media_management_apps" msgid="7499959607583088690">"éléments multimédias, fichier, gestion, gestionnaire, gérer, modifier, éditeur, appli, appli, programme"</string>
<string name="keywords_vr_listener" msgid="902737490270081131">"vr réalité virtuelle écouteur service de soutien stéréo"</string>
<string name="overlay_settings" msgid="2030836934139139469">"Afficher par-dessus autres applis"</string>
- <string name="filter_overlay_apps" msgid="2483998217116789206">"Applications dotées de l\'autorisation"</string>
- <string name="app_permission_summary_allowed" msgid="1155115629167757278">"Autorisées"</string>
- <string name="app_permission_summary_not_allowed" msgid="2673793662439097900">"Non autorisé"</string>
- <string name="keywords_install_other_apps" msgid="563895867658775580">"installer des applications provenant de sources inconnues"</string>
+ <string name="filter_overlay_apps" msgid="2483998217116789206">"Applis dotées de l\'autorisation"</string>
+ <string name="app_permission_summary_allowed" msgid="1155115629167757278">"Autorisée"</string>
+ <string name="app_permission_summary_not_allowed" msgid="2673793662439097900">"Non autorisée"</string>
+ <string name="keywords_install_other_apps" msgid="563895867658775580">"installer des applis provenant de sources inconnues"</string>
<string name="write_settings" msgid="6864794401614425894">"Modifier paramètres système"</string>
<string name="keywords_write_settings" msgid="6908708078855507813">"écrire des modifications aux paramètres du système"</string>
- <string name="filter_install_sources_apps" msgid="6930762738519588431">"Peut installer d\'autres applications"</string>
+ <string name="filter_install_sources_apps" msgid="6930762738519588431">"Peut installer d\'autres applis"</string>
<string name="filter_write_settings_apps" msgid="4754994984909024093">"Peut modifier les paramètres du système"</string>
<string name="write_settings_title" msgid="3011034187823288557">"Peut modifier les paramètres du système"</string>
<string name="write_system_settings" msgid="5555707701419757421">"Modifier paramètres système"</string>
<string name="permit_write_settings" msgid="3113056800709924871">"Autoriser la modification des paramètres du système"</string>
- <string name="write_settings_description" msgid="1474881759793261146">"Cette autorisation permet à une application de modifier les paramètres du système."</string>
+ <string name="write_settings_description" msgid="1474881759793261146">"Cette autorisation permet à une appli de modifier les paramètres du système."</string>
<string name="external_source_switch_title" msgid="101571983954849473">"Autoriser à partir de cette source"</string>
<string name="camera_gesture_title" msgid="5559439253128696180">"Pivot. poignet deux fois pour app. photo"</string>
- <string name="camera_gesture_desc" msgid="7557645057320805328">"Ouvrez l\'application de l\'appareil photo en pivotant votre poignet deux fois"</string>
+ <string name="camera_gesture_desc" msgid="7557645057320805328">"Ouvrez l\'appli de l\'appareil photo en pivotant votre poignet deux fois"</string>
<string name="screen_zoom_title" msgid="6928045302654960559">"Taille d\'affichage"</string>
<string name="screen_zoom_short_summary" msgid="756254364808639194">"Rendez tout plus grand ou plus petit"</string>
<string name="screen_zoom_keywords" msgid="5964023524422386592">"densité d\'affichage, zoom de l\'écran, échelle, mise à l\'échelle"</string>
@@ -4126,7 +4125,7 @@
<string name="screen_zoom_make_larger_desc" msgid="7268794713428853139">"Agrandir"</string>
<string name="disconnected" msgid="3469373726996129247">"Non connecté"</string>
<string name="keyboard_disconnected" msgid="796053864561894531">"Non connecté"</string>
- <string name="apps_summary" msgid="4007416751775414252">"<xliff:g id="COUNT">%1$d</xliff:g> applications installées"</string>
+ <string name="apps_summary" msgid="4007416751775414252">"<xliff:g id="COUNT">%1$d</xliff:g> applis installées"</string>
<string name="storage_summary" msgid="5903562203143572768">"Utilisé : <xliff:g id="PERCENTAGE">%1$s</xliff:g>; libre : <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
<string name="display_dashboard_summary" msgid="1599453894989339454">"Thème sombre, taille de la police, luminosité"</string>
<string name="memory_summary" msgid="8221954450951651735">"Mémoire utilisée en moyenne : <xliff:g id="USED_MEMORY">%1$s</xliff:g> sur <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
@@ -4139,17 +4138,17 @@
<string name="disabled_by_policy_title_sms" msgid="8951840850778406831">"Impossible d\'envoyer des messages texte"</string>
<string name="disabled_by_policy_title_camera" msgid="6616508876399613773">"Impossible d\'utiliser l\'appareil photo"</string>
<string name="disabled_by_policy_title_screen_capture" msgid="6085100101044105811">"Impossible de faire des captures d\'écran"</string>
- <string name="disabled_by_policy_title_suspend_packages" msgid="4223983156635729793">"Impossible d\'ouvrir cette application"</string>
+ <string name="disabled_by_policy_title_suspend_packages" msgid="4223983156635729793">"Impossible d\'ouvrir cette appli"</string>
<string name="disabled_by_policy_title_financed_device" msgid="2328740314082888228">"Bloqué par votre fournisseur de crédit"</string>
<string name="disabled_by_policy_title_biometric_parental_consent" msgid="2463673997797134678">"Consentement parental requis"</string>
<string name="disabled_by_policy_content_biometric_parental_consent" msgid="7124116806784305206">"Remettez le téléphone à votre parent pour commencer la configuration de ce paramètre"</string>
<string name="disabled_by_policy_parental_consent" msgid="9166060049019018978">"Remettez le téléphone à votre parent pour qu\'il autorise la modification de ce paramètre."</string>
<string name="default_admin_support_msg" msgid="8816296554831532033">"Pour en savoir plus, communiquez avec votre administrateur informatique"</string>
<string name="admin_support_more_info" msgid="8407433155725898290">"Détails supplémentaires"</string>
- <string name="admin_profile_owner_message" msgid="8860709969532649195">"Votre administrateur peut surveiller et gérer les applications et les données associées à votre profil professionnel, y compris les paramètres, les autorisations, l\'accès aux contenus de l\'entreprise, l\'activité réseau et les données de localisation de l\'appareil."</string>
- <string name="admin_profile_owner_user_message" msgid="4929926887231544950">"Votre administrateur peut surveiller et gérer les applications et les données associées à cet utilisateur, y compris les paramètres, les autorisations, l\'accès aux contenus de l\'entreprise, l\'activité réseau et les données de localisation de l\'appareil."</string>
- <string name="admin_device_owner_message" msgid="5503131744126520590">"Votre administrateur peut surveiller et gérer les applications et les données associées à cet appareil, y compris les paramètres, les autorisations, l\'accès aux contenus de l\'entreprise, l\'activité réseau et les données de localisation de l\'appareil."</string>
- <string name="admin_financed_message" msgid="1156197630834947884">"Votre administrateur d\'appareil pourrait être en mesure d\'accéder aux données associées à cet appareil, de modifier ses paramètres et de gérer des applications."</string>
+ <string name="admin_profile_owner_message" msgid="8860709969532649195">"Votre administrateur peut surveiller et gérer les applis et les données associées à votre profil professionnel, y compris les paramètres, les autorisations, l\'accès aux contenus de l\'entreprise, l\'activité réseau et les données de localisation de l\'appareil."</string>
+ <string name="admin_profile_owner_user_message" msgid="4929926887231544950">"Votre administrateur peut surveiller et gérer les applis et les données associées à cet utilisateur, y compris les paramètres, les autorisations, l\'accès aux contenus de l\'entreprise, l\'activité réseau et les données de localisation de l\'appareil."</string>
+ <string name="admin_device_owner_message" msgid="5503131744126520590">"Votre administrateur peut surveiller et gérer les applis et les données associées à cet appareil, y compris les paramètres, les autorisations, l\'accès aux contenus de l\'entreprise, l\'activité réseau et les données de localisation de l\'appareil."</string>
+ <string name="admin_financed_message" msgid="1156197630834947884">"Votre administrateur d\'appareil pourrait être en mesure d\'accéder aux données associées à cet appareil, de modifier ses paramètres et de gérer des applis."</string>
<string name="condition_turn_off" msgid="402707350778441939">"Désactiver"</string>
<string name="condition_turn_on" msgid="3911077299444314791">"Activer"</string>
<string name="condition_expand_show" msgid="1501084007540953213">"Afficher"</string>
@@ -4167,7 +4166,7 @@
<string name="condition_bg_data_title" msgid="2719263664589753094">"Économiseur de données"</string>
<string name="condition_bg_data_summary" msgid="1736255283216193834">"Fonctionnalités restreintes"</string>
<string name="condition_work_title" msgid="174326145616998813">"Profil professionnel désactivé"</string>
- <string name="condition_work_summary" msgid="7113473121312772398">"Pour les applications et les notifications"</string>
+ <string name="condition_work_summary" msgid="7113473121312772398">"Pour les applis et les notifications"</string>
<string name="condition_device_muted_action_turn_on_sound" msgid="4078406807327674934">"Activer le son"</string>
<string name="condition_device_muted_title" msgid="2446306263428466378">"Sonnerie désactivée"</string>
<string name="condition_device_muted_summary" msgid="3772178424510397327">"Pour les appels et les notifications"</string>
@@ -4188,7 +4187,7 @@
<string name="ota_disable_automatic_update_summary" msgid="7803279951533276841">"Appliquer les mises à jour au redémarrage de l\'appareil"</string>
<string name="usage" msgid="287782903846013936">"Utilisation"</string>
<string name="cellular_data_usage" msgid="5874156338825285334">"Utilisation de données cellulaires"</string>
- <string name="app_cellular_data_usage" msgid="7603292978956033926">"Utilisation des données des applications"</string>
+ <string name="app_cellular_data_usage" msgid="7603292978956033926">"Utilisation des données des applis"</string>
<string name="wifi_data_usage" msgid="6868503699134605707">"Utilisation des données Wi-Fi"</string>
<string name="non_carrier_data_usage" msgid="6494603202578414755">"Utilisation de données sur un réseau non cellulaire"</string>
<string name="ethernet_data_usage" msgid="4552227880905679761">"Utilisation de données Ethernet"</string>
@@ -4212,7 +4211,7 @@
<string name="data_limit" msgid="8731731657513652363">"Limite de données"</string>
<string name="data_usage_template" msgid="3822452362629968010">"<xliff:g id="ID_1">%1$s</xliff:g> utilisés pour la période : <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="configure" msgid="1499586749829665889">"Configurer"</string>
- <string name="data_usage_other_apps" msgid="5649047093607329537">"Autres applications incluses dans l\'utilisation"</string>
+ <string name="data_usage_other_apps" msgid="5649047093607329537">"Autres applis incluses dans l\'utilisation"</string>
<string name="data_saver_unrestricted_summary" msgid="559673440849071149">"{count,plural, =1{1 appli est autorisée à utiliser les données cellulaires sans restrictions lorsque la fonction Économiseur de données est activée}one{# appli est autorisée à utiliser les données cellulaires sans restrictions lorsque la fonction Économiseur de données est activée}other{# applis sont autorisées à utiliser les données cellulaires sans restrictions lorsque la fonction Économiseur de données est activée}}"</string>
<string name="data_usage_title" msgid="4039024073687469094">"Données primaires"</string>
<string name="data_usage_wifi_title" msgid="1060495519280456926">"Données Wi-Fi"</string>
@@ -4237,7 +4236,7 @@
<string name="data_saver_switch_title" msgid="7111538580123722959">"Utiliser l\'Économiseur de données"</string>
<string name="unrestricted_app_title" msgid="8531936851059106374">"Utilisation de données cellulaires sans restrictions"</string>
<string name="unrestricted_app_summary" msgid="8320813971858627624">"Autoriser l\'accès aux données cellulaires sans restrictions lorsque l\'Économiseur de données est activé"</string>
- <string name="home_app" msgid="6056850504746902747">"Application d\'accueil"</string>
+ <string name="home_app" msgid="6056850504746902747">"Appli d\'accueil"</string>
<string name="suggestion_additional_fingerprints" msgid="4726777300101156208">"Ajouter une empreinte digitale"</string>
<string name="suggestion_additional_fingerprints_summary" msgid="2825364645039666674">"Déverrouiller avec un autre doigt"</string>
<string name="battery_saver_on_summary" msgid="4605146593966255848">"Activée"</string>
@@ -4302,7 +4301,7 @@
<string name="long_background_tasks_label" msgid="3169590134850226687">"Longues tâches en arrière-plan"</string>
<string name="long_background_tasks_switch_title" msgid="2491623894899492543">"Autoriser les longues tâches en arrière-plan"</string>
<string name="long_background_tasks_title" msgid="3272230637974707490">"Longues tâches en arrière-plan"</string>
- <string name="long_background_tasks_footer_title" msgid="9117342254914743097">"Autoriser cette application à exécuter de longues tâches en arrière-plan. Ceci permet à cette application d\'exécuter des tâches qui pourraient prendre plus que quelques minutes, comme des téléchargements ou des téléversements. \n\nSi cette autorisation est refusée, le système va limiter le temps pendant lequel l\'application peut effectuer ces tâches en arrière-plan."</string>
+ <string name="long_background_tasks_footer_title" msgid="9117342254914743097">"Autoriser cette appli à exécuter de longues tâches en arrière-plan. Ceci permet à cette appli d\'exécuter des tâches qui pourraient prendre plus que quelques minutes, comme des téléchargements ou des téléversements. \n\nSi cette autorisation est refusée, le système va limiter le temps pendant lequel l\'appli peut effectuer ces tâches en arrière-plan."</string>
<string name="keywords_long_background_tasks" msgid="5788956269136054574">"longues tâches, transfert de données, tâches en arrière-plan"</string>
<string name="reset_shortcut_manager_throttling" msgid="2183940254903144298">"Réinitialiser la limitation de fréquence ShortcutManager"</string>
<string name="reset_shortcut_manager_throttling_complete" msgid="8949943009096885470">"La limitation de fréquence ShortcutManager a été réinitialisée"</string>
@@ -4311,7 +4310,7 @@
<string name="page_tab_title_support" msgid="3235725053332345773">"Astuces et assistance"</string>
<string name="developer_smallest_width" msgid="632354817870920911">"La plus petite largeur"</string>
<string name="premium_sms_none" msgid="4718916765158062108">"Aucune appli installée n\'a demandé l\'accès aux messages texte payants"</string>
- <string name="premium_sms_warning" msgid="2192300872411073324">"Les textos de cette catégorie peuvent être payants et s\'ajouter aux factures mensuelles de votre fournisseur de services. Si vous activez l\'autorisation pour une application, vous serez en mesure d\'envoyer des textos payants à l\'aide de cette dernière."</string>
+ <string name="premium_sms_warning" msgid="2192300872411073324">"Les textos de cette catégorie peuvent être payants et s\'ajouter aux factures mensuelles de votre fournisseur de services. Si vous activez l\'autorisation pour une appli, vous serez en mesure d\'envoyer des textos payants à l\'aide de cette dernière."</string>
<string name="premium_sms_access" msgid="8487315743197916530">"Messages texte payants"</string>
<string name="bluetooth_disabled" msgid="835838280837359514">"Désactivé"</string>
<string name="bluetooth_connected_summary" msgid="8043167194934315712">"Connecté à <xliff:g id="ID_1">%1$s</xliff:g>"</string>
@@ -4329,11 +4328,11 @@
<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="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>
+ <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Laissez les applis personnelles déterminer les contacts à l\'aide de l\'annuaire professionnel"</string>
<string name="managed_profile_contact_search_summary" msgid="4974727886709219105">"Les recherches et les appels entrants peuvent être visibles pour votre administrateur informatique"</string>
<string name="cross_profile_calendar_title" msgid="7570277841490216947">"Agenda multi-profil"</string>
<string name="cross_profile_calendar_summary" msgid="8856185206722860069">"Afficher les événements professionnels dans l\'agenda personnel"</string>
- <string name="managed_profile_settings_footer" msgid="996500759305118103">"Lorsque les applications professionnelles sont désactivées, elles sont mises en pause et ne peuvent ni être consultées ni envoyer de notifications"</string>
+ <string name="managed_profile_settings_footer" msgid="996500759305118103">"Lorsque les applis professionnelles sont désactivées, elles sont mises en pause et ne peuvent ni être consultées ni envoyer de notifications"</string>
<string name="automatic_storage_manager_settings" msgid="519158151463974656">"Gérer l\'espace de stockage"</string>
<string name="automatic_storage_manager_text" msgid="6900593059927987273">"Pour vous aider à libérer de l\'espace, le Gestionnaire de stockage supprime les photos et les vidéos sauvegardées sur votre appareil."</string>
<string name="automatic_storage_manager_days_title" msgid="5077286114860539367">"Supprimer les photos et les vidéos"</string>
@@ -4346,7 +4345,7 @@
<string name="double_twist_for_camera_mode_summary" msgid="592503740044744951"></string>
<string name="system_navigation_title" msgid="4890381153527184636">"Mode de navigation"</string>
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Navigation à deux boutons"</string>
- <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Pour changer d\'application, balayez un doigt vers le haut sur la touche d\'accueil. Pour voir toutes les applications, balayez vers le haut de nouveau. Pour revenir, touchez le bouton Précédent."</string>
+ <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Pour changer d\'appli, balayez un doigt vers le haut sur la touche d\'accueil. Pour voir toutes les applis, balayez vers le haut de nouveau. Pour revenir, touchez le bouton Précédent."</string>
<string name="emergency_settings_preference_title" msgid="6183455153241187148">"Sécurité et urgence"</string>
<string name="emergency_dashboard_summary" msgid="401033951074039302">"Appel d\'urgence, infos médicales, alertes"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Navigation par gestes"</string>
@@ -4359,7 +4358,7 @@
<string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Balayer l\'écran pour appeler l\'assistant"</string>
<string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Pour lancer l\'appli 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="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"Maintenez la touche d\'accueil enfoncée pour invoquer l\'appli d\'assistant numérique."</string>
<string name="low_label" msgid="6525629096999711220">"Faible"</string>
<string name="high_label" msgid="357503396626018487">"Élevée"</string>
<string name="left_edge" msgid="1513576842959071849">"Bord gauche"</string>
@@ -4405,15 +4404,15 @@
<string name="oem_unlock_enable_disabled_summary_sim_locked_device" msgid="168124660162907358">"Non disp. sur les appareils verrouillés par un f. de services"</string>
<string name="oem_lock_info_message" msgid="8843145669619429197">"Veuillez redémarrer l\'appareil pour activer la fonction de protection d\'appareil."</string>
<string name="automatic_storage_manager_freed_bytes" msgid="706230592123831676">"<xliff:g id="SIZE">%1$s</xliff:g> libéré(s) au total\n\n Dernière exécution : <xliff:g id="DATE">%2$s</xliff:g>"</string>
- <string name="web_action_enable_title" msgid="6654581786741216382">"Applications instantanées"</string>
- <string name="web_action_enable_summary" msgid="2658930257777545990">"Ouvrir les liens dans les applications, même si elles ne sont pas installées"</string>
- <string name="web_action_section_title" msgid="994717569424234098">"Applications instantanées"</string>
+ <string name="web_action_enable_title" msgid="6654581786741216382">"Applis instantanées"</string>
+ <string name="web_action_enable_summary" msgid="2658930257777545990">"Ouvrir les liens dans les applis, même si elles ne sont pas installées"</string>
+ <string name="web_action_section_title" msgid="994717569424234098">"Applis instantanées"</string>
<string name="instant_apps_settings" msgid="4280942494969957858">"Préf. applis instantanées"</string>
- <string name="domain_url_section_title" msgid="9028890472923474958">"Applications installées"</string>
+ <string name="domain_url_section_title" msgid="9028890472923474958">"Applis installées"</string>
<string name="automatic_storage_manager_activation_warning" msgid="170508173207142665">"Votre espace de stockage est maintenant géré par le gestionnaire de stockage"</string>
<string name="account_for_section_header" msgid="7466759342105251096">"Comptes pour <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
- <string name="auto_sync_account_title" msgid="1070908045600374254">"Synchroniser automatiquement les données des applications"</string>
- <string name="auto_sync_account_summary" msgid="7580352130028957346">"Autoriser les applications à actualiser les données automatiquement"</string>
+ <string name="auto_sync_account_title" msgid="1070908045600374254">"Synchroniser automatiquement les données des applis"</string>
+ <string name="auto_sync_account_summary" msgid="7580352130028957346">"Autoriser les applis à actualiser les données automatiquement"</string>
<string name="account_sync_title" msgid="7036067017433297574">"Synchro du compte"</string>
<string name="account_sync_summary_some_on" msgid="911460286297968724">"La synchronisation est activée pour <xliff:g id="ID_1">%1$d</xliff:g> élément(s) sur <xliff:g id="ID_2">%2$d</xliff:g>"</string>
<string name="account_sync_summary_all_on" msgid="2953682111836599841">"La synchronisation est activée pour tous les éléments"</string>
@@ -4426,20 +4425,20 @@
<string name="enterprise_privacy_exposure_changes_category" msgid="5459989751333816587">"Modifications apportées par l\'administrateur de votre organisation"</string>
<string name="enterprise_privacy_device_access_category" msgid="140157499478630004">"Votre accès à cet appareil"</string>
<string name="enterprise_privacy_enterprise_data" msgid="3963070078195245028">"Les données associées à votre compte professionnel, comme les courriels et l\'agenda"</string>
- <string name="enterprise_privacy_installed_packages" msgid="6707006112254572820">"Liste des applications installées sur votre appareil"</string>
- <string name="enterprise_privacy_usage_stats" msgid="6328506963853465534">"Temps passé et quantité de données utilisée pour chaque application"</string>
+ <string name="enterprise_privacy_installed_packages" msgid="6707006112254572820">"Liste des applis installées sur votre appareil"</string>
+ <string name="enterprise_privacy_usage_stats" msgid="6328506963853465534">"Temps passé et quantité de données utilisée pour chaque appli"</string>
<string name="enterprise_privacy_network_logs" msgid="3081744541193695887">"Journal de trafic réseau le plus récent"</string>
<string name="enterprise_privacy_bug_reports" msgid="2635897583413134123">"Rapport de bogue le plus récent"</string>
<string name="enterprise_privacy_security_logs" msgid="8494681624247959075">"Journal de sécurité le plus récent"</string>
<string name="enterprise_privacy_none" msgid="6026527690979756431">"Aucune"</string>
- <string name="enterprise_privacy_enterprise_installed_packages" msgid="9114143640515900082">"Applications installées"</string>
- <string name="enterprise_privacy_apps_count_estimation_info" msgid="7959907857710107792">"Le nombre d\'applications est estimé. Il peut exclure les applications installées à partir d\'une source autre que la boutique Google Play Store."</string>
- <string name="enterprise_privacy_number_packages_lower_bound" msgid="5317634640873658149">"{count,plural, =1{Minimum de # application}one{Minimum de # application}other{Minimum de # applications}}"</string>
+ <string name="enterprise_privacy_enterprise_installed_packages" msgid="9114143640515900082">"Applis installées"</string>
+ <string name="enterprise_privacy_apps_count_estimation_info" msgid="7959907857710107792">"Le nombre d\'applis est estimé. Il peut exclure les applis installées à partir d\'une source autre que la boutique Google Play Store."</string>
+ <string name="enterprise_privacy_number_packages_lower_bound" msgid="5317634640873658149">"{count,plural, =1{Minimum de # appli}one{Minimum de # appli}other{Minimum de # applis}}"</string>
<string name="enterprise_privacy_location_access" msgid="8023838718108456971">"Autorisations de localisation"</string>
<string name="enterprise_privacy_microphone_access" msgid="7242958026470143653">"Autorisations du microphone"</string>
<string name="enterprise_privacy_camera_access" msgid="7685460535880069016">"Autorisations de l\'appareil photo"</string>
- <string name="enterprise_privacy_enterprise_set_default_apps" msgid="7498546659083996300">"Applications par défaut"</string>
- <string name="enterprise_privacy_number_packages" msgid="5294444005035188274">"{count,plural, =1{# application}one{# application}other{# applications}}"</string>
+ <string name="enterprise_privacy_enterprise_set_default_apps" msgid="7498546659083996300">"Applis par défaut"</string>
+ <string name="enterprise_privacy_number_packages" msgid="5294444005035188274">"{count,plural, =1{# appli}one{# appli}other{# applis}}"</string>
<string name="enterprise_privacy_input_method" msgid="3278314982700662246">"Clavier par défaut"</string>
<string name="enterprise_privacy_input_method_name" msgid="2974859490559054584">"Valeur définie : <xliff:g id="APP_LABEL">%s</xliff:g>"</string>
<string name="enterprise_privacy_always_on_vpn_device" msgid="1735829327405126695">"Le RPV permanent est activé"</string>
@@ -4465,7 +4464,7 @@
<string name="financed_privacy_settings" msgid="2575114436197204145">"Renseignements sur l\'appareil financé"</string>
<string name="financed_privacy_intro" msgid="7836497475568741579">"Votre fournisseur de crédit peut modifier des paramètres et installer des logiciels sur cet appareil pendant la configuration.\n\nSi vous manquez un paiement, votre fournisseur de crédit peut verrouiller votre appareil et en modifier les paramètres.\n\nPour en savoir plus, communiquez avec votre fournisseur de crédit."</string>
<string name="financed_privacy_restrictions_category" msgid="2472659467919651602">"Si votre appareil est financé, vous ne pouvez pas :"</string>
- <string name="financed_privacy_install_apps" msgid="7381718005710210851">"Installer des applications ne provenant pas de Play Store"</string>
+ <string name="financed_privacy_install_apps" msgid="7381718005710210851">"Installer des applis ne provenant pas de Play Store"</string>
<string name="financed_privacy_safe_mode" msgid="5362149445732602578">"Redémarrer votre appareil en mode sans échec"</string>
<string name="financed_privacy_multi_users" msgid="1727194928477613081">"Ajouter plusieurs utilisateurs à votre appareil"</string>
<string name="financed_privacy_config_date_time" msgid="8567370445374984365">"Modifier la date, l\'heure et les fuseaux horaires"</string>
@@ -4478,17 +4477,17 @@
<string name="financed_privacy_system_info" msgid="4158031444108708927">"Afficher les données système telles que la date, l\'heure, l\'état du réseau et l\'état de la pile"</string>
<string name="financed_privacy_turn_on_off_device" msgid="3331566753152790571">"Activer ou désactiver votre appareil"</string>
<string name="financed_privacy_notifications" msgid="5932303271274089968">"Afficher les notifications et les messages texte"</string>
- <string name="financed_privacy_allowlisted_apps" msgid="8333040812194879963">"Accéder aux applications autorisées par le fournisseur de crédit"</string>
+ <string name="financed_privacy_allowlisted_apps" msgid="8333040812194879963">"Accéder aux applis autorisées par le fournisseur de crédit"</string>
<string name="financed_privacy_fully_paid_category" msgid="9221763928564246923">"Une fois que vous avez payé le montant total :"</string>
<string name="financed_privacy_restrictions_removed" msgid="3182636815294595072">"Toutes les restrictions sont retirées de l\'appareil"</string>
<string name="financed_privacy_uninstall_creditor_app" msgid="6339004120497310705">"Vous pouvez désinstaller l\'appli du fournisseur de crédit"</string>
<string name="financed_device_info" msgid="3871860346697308342">"Renseignements sur l\'appareil financé"</string>
- <string name="default_camera_app_title" msgid="6546248868519965998">"{count,plural, =1{Application Appareil photo}one{Application Appareil photo}other{Applications Appareil photo}}"</string>
- <string name="default_calendar_app_title" msgid="1870095225089706093">"Application d\'agenda"</string>
- <string name="default_contacts_app_title" msgid="7740028900741944569">"Application de contacts"</string>
- <string name="default_email_app_title" msgid="5411280873093244250">"{count,plural, =1{Application de client de messagerie}one{Application de client de messagerie}other{Applications de client de messagerie}}"</string>
- <string name="default_map_app_title" msgid="7569231732944853320">"Application de carte"</string>
- <string name="default_phone_app_title" msgid="795025972645464135">"{count,plural, =1{Application Téléphone}one{Application Téléphone}other{Applications Téléphone}}"</string>
+ <string name="default_camera_app_title" msgid="6546248868519965998">"{count,plural, =1{Appli Appareil photo}one{Appli Appareil photo}other{Applis Appareil photo}}"</string>
+ <string name="default_calendar_app_title" msgid="1870095225089706093">"Appli d\'agenda"</string>
+ <string name="default_contacts_app_title" msgid="7740028900741944569">"Appli de contacts"</string>
+ <string name="default_email_app_title" msgid="5411280873093244250">"{count,plural, =1{Appli de client de messagerie}one{Appli de client de messagerie}other{Applis de client de messagerie}}"</string>
+ <string name="default_map_app_title" msgid="7569231732944853320">"Appli de carte"</string>
+ <string name="default_phone_app_title" msgid="795025972645464135">"{count,plural, =1{Appli Téléphone}one{Appli Téléphone}other{Applis Téléphone}}"</string>
<string name="app_names_concatenation_template_2" msgid="8320181646458855457">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g> et <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>"</string>
<string name="app_names_concatenation_template_3" msgid="7019703249717854148">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g> et <xliff:g id="THIRD_APP_NAME">%3$s</xliff:g>"</string>
<string name="storage_default_internal_storage" msgid="4055660218818688131">"Cet appareil"</string>
@@ -4499,7 +4498,7 @@
<string name="storage_audio" msgid="5994664984472140386">"Audio"</string>
<string name="storage_documents" msgid="7873134307844320096">"Documents"</string>
<string name="storage_other" msgid="7922190148479988838">"Autre"</string>
- <string name="storage_apps" msgid="3564291603258795216">"Applications"</string>
+ <string name="storage_apps" msgid="3564291603258795216">"Applis"</string>
<string name="storage_system" msgid="8472410119822911844">"Système"</string>
<string name="storage_os_name" msgid="4637680493234672410">"Android <xliff:g id="VERSION">%s</xliff:g>"</string>
<string name="storage_temporary_files" msgid="8254109904032452219">"Fichiers système temporaires"</string>
@@ -4510,8 +4509,8 @@
<string name="storage_trash_dialog_confirm" msgid="1707723334982760436">"Vider la corbeille"</string>
<string name="storage_usage_summary" msgid="4591121727356723463">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> utilisés"</string>
<string name="storage_total_summary" msgid="7163360249534964272">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> au total"</string>
- <string name="clear_instant_app_data" msgid="5951258323364386357">"Effacer les données de l\'application"</string>
- <string name="clear_instant_app_confirmation" msgid="3964731334459209482">"Voulez-vous supprimer cette application instantanée?"</string>
+ <string name="clear_instant_app_data" msgid="5951258323364386357">"Effacer les données de l\'appli"</string>
+ <string name="clear_instant_app_confirmation" msgid="3964731334459209482">"Voulez-vous supprimer cette appli instantanée?"</string>
<string name="launch_instant_app" msgid="8503927414339606561">"Ouvrir"</string>
<string name="game_storage_settings" msgid="2521393115726178837">"Jeux"</string>
<string name="app_info_storage_title" msgid="4076977173803093808">"Espace utilisé"</string>
@@ -4529,7 +4528,7 @@
<string name="credman_button_change" msgid="4072629639218503790">"Modifier"</string>
<string name="credman_button_open" msgid="7519871964170816850">"Ouvrir"</string>
<string name="credman_app_list_preference_none" msgid="2509646651254971448">"Aucun élément sélectionné"</string>
- <string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Assurez-vous de faire confiance à cette application</b> <br/> <br/> <xliff:g id=app_name example=Google Remplissage automatique>%1$s</xliff:g> 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="autofill_confirmation_message" msgid="4888767934273494272">"<b>Assurez-vous de faire confiance à cette appli</b> <br/> <br/> <xliff:g id=app_name example=Google Remplissage automatique>%1$s</xliff:g> 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="843829628024668466">"<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> Les nouveaux mots de passe, clés d\'accès et autres renseignements seront désormais enregistrés ici. <xliff:g id=app_name example=Provider>%1$s</xliff:g> 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="8442086614222006564">"Fourn. de serv. préf. pour mots de passe, clés d\'accès et remp. aut."</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Désactiver %1$s?"</string>
@@ -4566,21 +4565,21 @@
<string name="default_theme" msgid="4815428567082263639">"Par défaut"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nom du réseau"</string>
<string name="show_operator_name_summary" msgid="5352696579216501773">"Afficher le nom du réseau dans la barre d\'état"</string>
- <string name="install_type_instant" msgid="7685381859060486009">"Application instantanée"</string>
+ <string name="install_type_instant" msgid="7685381859060486009">"Appli instantanée"</string>
<string name="automatic_storage_manager_deactivation_warning" msgid="4905106133215702099">"Désactiver le gestionnaire de stockage?"</string>
<string name="zen_suggestion_title" msgid="4555260320474465668">"Mettre à jour les paramètres du mode Ne pas déranger"</string>
<string name="zen_suggestion_summary" msgid="1984990920503217">"Suspendre les notifications pour rester concentré"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Cette fonctionnalité n\'est pas accessible"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Cette fonctionnalité a été désactivée, car elle ralentit votre téléphone"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Toujours afficher la fenêtre de plantage"</string>
- <string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Afficher la fenêtre chaque fois qu\'une application plante"</string>
- <string name="angle_enabled_app" msgid="6044941043384239076">"Sélectionnez l\'application compatible avec ANGLE"</string>
- <string name="angle_enabled_app_not_set" msgid="4472572224881726067">"Aucune application compatible avec ANGLE n\'a été définie"</string>
- <string name="angle_enabled_app_set" msgid="7811829383833353021">"Application compatible avec ANGLE : <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+ <string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Afficher la fenêtre chaque fois qu\'une appli plante"</string>
+ <string name="angle_enabled_app" msgid="6044941043384239076">"Sélectionnez l\'appli compatible avec ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="4472572224881726067">"Aucune appli compatible avec ANGLE n\'a été définie"</string>
+ <string name="angle_enabled_app_set" msgid="7811829383833353021">"Appli compatible avec ANGLE : <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="graphics_driver_dashboard_title" msgid="5661084817492587796">"Préférences du pilote graphique"</string>
<string name="graphics_driver_dashboard_summary" msgid="6348759885315793654">"Modifiez les paramètres du pilote graphique"</string>
- <string name="graphics_driver_footer_text" msgid="5123754522284046790">"Lorsqu\'il y a de nombreux pilotes graphiques, vous pouvez choisir d\'utiliser le pilote graphique à jour pour les applications installées sur l\'appareil."</string>
- <string name="graphics_driver_all_apps_preference_title" msgid="1343065382898127360">"Activer pour toutes les applications"</string>
+ <string name="graphics_driver_footer_text" msgid="5123754522284046790">"Lorsqu\'il y a de nombreux pilotes graphiques, vous pouvez choisir d\'utiliser le pilote graphique à jour pour les applis installées sur l\'appareil."</string>
+ <string name="graphics_driver_all_apps_preference_title" msgid="1343065382898127360">"Activer pour toutes les applis"</string>
<string name="graphics_driver_app_preference_title" msgid="3133255818657706857">"Sélectionner un pilote graphique"</string>
<string name="graphics_driver_app_preference_default" msgid="764432460281859855">"Par défaut"</string>
<string name="graphics_driver_app_preference_production_driver" msgid="1515874802568434915">"Pilote du jeu"</string>
@@ -4594,13 +4593,13 @@
<!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
<!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
<string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Expérimental : Activer ANGLE"</string>
- <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Avertissement : Activer ANGLE en tant que pilote OpenGL ES par défaut. Cette fonctionnalité est en cours de test et peut ne pas être compatible avec certaines applications vidéo et d\'appareils photo."</string>
+ <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Avertissement : Activer ANGLE en tant que pilote OpenGL ES par défaut. Cette fonctionnalité est en cours de test et peut ne pas être compatible avec certaines applis vidéo et d\'appareils photo."</string>
<string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Un redémarrage est nécessaire pour modifier le pilote OpenGL ES du système"</string>
<string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Changements dans la compatibilité des applis"</string>
<string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Basculez les changements de compatibilité des applis"</string>
<string name="platform_compat_default_enabled_title" msgid="8973137337738388024">"Changements activés par défaut"</string>
<string name="platform_compat_default_disabled_title" msgid="3975847180953793602">"Changements désactivés par défaut"</string>
- <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="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Les modifications de compatibilité des applis peuvent uniquement être modifiées pour les applis débogables. Installez une appli 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>
@@ -4610,11 +4609,11 @@
<string name="my_device_info_device_details_category_title" msgid="4848438695638348680">"Détails de l\'appareil"</string>
<string name="my_device_info_device_identifiers_category_title" msgid="2197063484127704153">"Identifiants de l\'appareil"</string>
<string name="change_wifi_state_title" msgid="5629648102837821525">"Gestion du Wi-Fi"</string>
- <string name="change_wifi_state_app_detail_switch" msgid="1385358508267180745">"Autoriser l\'application à gérer le Wi-Fi"</string>
- <string name="change_wifi_state_app_detail_summary" msgid="8230854855584217111">"Autorisez cette application à activer ou à désactiver le Wi-Fi, à rechercher les réseaux Wi-Fi et à s\'y connecter, à ajouter et à supprimer des réseaux ou à créer un point d\'accès local uniquement"</string>
+ <string name="change_wifi_state_app_detail_switch" msgid="1385358508267180745">"Autoriser l\'appli à gérer le Wi-Fi"</string>
+ <string name="change_wifi_state_app_detail_summary" msgid="8230854855584217111">"Autorisez cette appli à activer ou à désactiver le Wi-Fi, à rechercher les réseaux Wi-Fi et à s\'y connecter, à ajouter et à supprimer des réseaux ou à créer un point d\'accès local uniquement"</string>
<string name="change_nfc_tag_apps_title" msgid="91514009058149617">"Lancer au moyen de la CCP"</string>
- <string name="change_nfc_tag_apps_detail_switch" msgid="240286205725043561">"Autoriser le lancement d\'applications lorsqu\'une balise CCP est détectée"</string>
- <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="change_nfc_tag_apps_detail_switch" msgid="240286205725043561">"Autoriser le lancement d\'applis lorsqu\'une balise CCP est détectée"</string>
+ <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Autorisez cette appli à se lancer lorsqu\'une balise CCP est détectée.\nSi cette autorisation est activée, l\'appli 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>
@@ -4848,10 +4847,10 @@
<string name="wifi_warning_continue_button" msgid="8171574741789688214">"Effacer quand même"</string>
<string name="wifi_warning_return_button" msgid="6226063181583906340">"OK"</string>
<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_request_dialog_summary" msgid="7693038309792726170">"L\'appli <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>
<string name="network_connection_timeout_dialog_ok" msgid="6022675321823723755">"Réessayer"</string>
- <string name="network_connection_errorstate_dialog_message" msgid="3360714322047603239">"Une erreur s\'est produite. L\'application a annulé la demande de sélection d\'un appareil."</string>
+ <string name="network_connection_errorstate_dialog_message" msgid="3360714322047603239">"Une erreur s\'est produite. L\'appli a annulé la demande de sélection d\'un appareil."</string>
<string name="network_connection_connect_successful" msgid="2587314077675642476">"Connexion réussie"</string>
<string name="network_connection_connect_failure" msgid="6803313816657494319">"Échec de connexion"</string>
<string name="network_connection_request_dialog_showall" msgid="6392059758456994944">"Tout afficher"</string>
@@ -4862,10 +4861,12 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Étui"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Pile"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panneau Paramètres"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Forcer le mode bureau"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forcer le mode bureau expérimental sur les écrans secondaires"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Activer les fenêtres de forme libre"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Activer la prise en charge des fenêtres de forme libre."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Activer fenêtres de forme libre sur deuxième écran"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Activer les fenêtres de forme libre uniquement sur un écran secondaire."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Activer éléments non redimensionnables en mode multi-fenêtre"</string>
- <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Activer les applications non redimensionnables en mode multi-fenêtre"</string>
+ <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Activer les applis non redimensionnables en mode multi-fenêtre"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Forcer l\'activation du thème sombre forcé"</string>
<string name="hwui_force_dark_summary" msgid="6515748781487952769">"Forcer la fonctionnalité de thème sombre forcé à rester active"</string>
<string name="privacy_dashboard_title" msgid="6845403825611829558">"Confidentialité"</string>
@@ -4880,18 +4881,18 @@
<string name="copyable_slice_toast" msgid="1008251852798990606">"<xliff:g id="COPY_CONTENT">%1$s</xliff:g> copié dans le presse-papiers"</string>
<string name="search_bar_account_avatar_content_description" msgid="880523277036898350"></string>
<string name="accessibility_usage_title" msgid="9190967143518779145">"Usage des fonctions d\'accessibilité"</string>
- <string name="accessibility_usage_summary" msgid="4348285359995227813">"{count,plural, =1{1 application dispose d\'un accès complet à votre appareil}one{# application dispose d\'un accès complet à votre appareil}other{# applications disposent d\'un accès complet à votre appareil}}"</string>
+ <string name="accessibility_usage_summary" msgid="4348285359995227813">"{count,plural, =1{1 appli dispose d\'un accès complet à votre appareil}one{# appli dispose d\'un accès complet à votre appareil}other{# applis disposent d\'un accès complet à votre appareil}}"</string>
<string name="wfc_disclaimer_title_text" msgid="4617195934203523503">"Renseignements importants"</string>
<string name="wfc_disclaimer_agree_button_text" msgid="4082872292910770344">"CONTINUER"</string>
<string name="wfc_disclaimer_disagree_text" msgid="8424457394700137703">"NON MERCI"</string>
<string name="wfc_disclaimer_location_title_text" msgid="7913919887475418423">"Lieu"</string>
<string name="wfc_disclaimer_location_desc_text" msgid="1417004513415772582">"Votre fournisseur de services peut collecter les données relatives à votre position lorsque vous utilisez ce service en lien avec les appels d\'urgence.\n\nConsultez la politique de confidentialité de votre fournisseur de services pour obtenir plus de détails."</string>
<string name="forget_passpoint_dialog_message" msgid="2433875063907365760">"Vous risquez de perdre l\'accès au temps ou aux données restants. Communiquez avec votre fournisseur de services avant de procéder au retrait."</string>
- <string name="content_capture" msgid="868372905432812238">"Contenu de l\'application"</string>
- <string name="content_capture_summary" msgid="49720773699715531">"Autorisez les applications à envoyer du contenu au système Android"</string>
+ <string name="content_capture" msgid="868372905432812238">"Contenu de l\'appli"</string>
+ <string name="content_capture_summary" msgid="49720773699715531">"Autorisez les applis à envoyer du contenu au système Android"</string>
<string name="capture_system_heap_dump_title" msgid="9210974110606886455">"Capturer l\'empreinte de mémoire système"</string>
<string name="development_memtag_page_title" msgid="3546667618748029188">"Memory Tagging Extension"</string>
- <string name="development_memtag_intro" msgid="8032596625527637164">"L\'extension MTE (Memory Tagging Extension) facilite la détection des problèmes de sécurité de la mémoire dans votre application et rend plus sécuritaire son code natif."</string>
+ <string name="development_memtag_intro" msgid="8032596625527637164">"L\'extension MTE (Memory Tagging Extension) facilite la détection des problèmes de sécurité de la mémoire dans votre appli et rend plus sécuritaire son code natif."</string>
<string name="development_memtag_footer" msgid="5681925148773626562">"L\'activation de l\'extension MTE peut entraîner un ralentissement des performances de l\'appareil."</string>
<string name="development_memtag_learn_more" msgid="8961984806973926704">"En savoir plus sur l\'extension MTE"</string>
<string name="development_memtag_toggle" msgid="2474420239518386894">"Activer l\'extension MTE jusqu\'à ce que vous la désactiviez"</string>
@@ -4922,30 +4923,27 @@
<string name="enable_16k_pages" msgid="8001470927566110689">"Démarrer avec des pages de 16 Ko"</string>
<string name="enable_16k_pages_summary" msgid="1964363364670306912">"Démarrage par noyau compatible avec pages de 16 Ko"</string>
<string name="confirm_enable_16k_pages_title" msgid="611010487387251491">"Passer du mode 4 ko au mode 16 ko"</string>
- <string name="confirm_enable_16k_pages_text" msgid="6129208614283750541">"Vous utilisez le mode agnostique de page qui exécute un noyau de 4 ko et vous passez au mode 16 ko. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Cette opération redémarrera l\'appareil. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applications peuvent ne pas fonctionner. Pour remettre l\'appareil en mode production, vous devrez ensuite retourner en mode 4 ko et verrouiller le programme d\'amorçage, ce qui réinitialise l\'appareil à ses paramètres par défaut. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage par le fabricant d\'équipement d\'origine dans les Options pour les développeurs."</string>
+ <string name="confirm_enable_16k_pages_text" msgid="6129208614283750541">"Vous utilisez le mode agnostique de page qui exécute un noyau de 4 ko et vous passez au mode 16 ko. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Cette opération redémarrera l\'appareil. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applis peuvent ne pas fonctionner. Pour remettre l\'appareil en mode production, vous devrez ensuite retourner en mode 4 ko et verrouiller le programme d\'amorçage, ce qui réinitialise l\'appareil à ses paramètres par défaut. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage par le fabricant d\'équipement d\'origine dans les Options pour les développeurs."</string>
<string name="confirm_enable_4k_pages_title" msgid="3210360137887034659">"Passer du mode 16 Ko au mode 4 Ko"</string>
- <string name="confirm_enable_4k_pages_text" msgid="155070605667160083">"Vous utilisez le mode agnostique de page qui exécute un noyau de 16 Ko et vous passez au mode 4 Ko. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Cette opération redémarrera l\'appareil. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applications peuvent ne pas fonctionner. Pour remettre l\'appareil en mode production, vous devrez ensuite verrouiller le programme d\'amorçage, ce qui réinitialise l\'appareil à ses paramètres par défaut. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage par le fabricant d\'équipement d\'origine dans les Options pour les développeurs."</string>
+ <string name="confirm_enable_4k_pages_text" msgid="155070605667160083">"Vous utilisez le mode agnostique de page qui exécute un noyau de 16 Ko et vous passez au mode 4 Ko. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Cette opération redémarrera l\'appareil. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applis peuvent ne pas fonctionner. Pour remettre l\'appareil en mode production, vous devrez ensuite verrouiller le programme d\'amorçage, ce qui réinitialise l\'appareil à ses paramètres par défaut. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage par le fabricant d\'équipement d\'origine dans les Options pour les développeurs."</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="confirm_format_ext4_title" msgid="6696191800594435577">"Reformater l\'appareil vers le système de fichiers ext4? (requis pour le mode 16 Ko)"</string>
- <string name="confirm_format_ext4_text" msgid="7940372488624630214">"La partition de données de cet appareil doit être convertie en système de fichiers ext4 avant d\'utiliser l\'option de 16 Ko pour les développeurs. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. L\'activation de l\'option de 16 Ko nécessitera ensuite un autre redémarrage. Une fois que vous êtes dans ce mode, vous pouvez basculer entre le mode 4 Ko et le mode 16 Ko avec un seul redémarrage. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applications peuvent ne pas fonctionner. Pour remettre l\'appareil en mode production, vous devrez revenir en mode 4 Ko et ensuite verrouiller le programme d\'amorçage, ce qui réinitialise l\'appareil à ses paramètres par défaut. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage par le fabricant d\'équipement d\'origine dans les Options pour les développeurs. L\'appareil sera nettoyé et le système de fichiers sera remplacé par le système de fichiers ext4 après la confirmation. Une fois cette opération terminée, revenez pour activer à nouveau l\'option de 16 Ko."</string>
+ <string name="confirm_format_ext4_text" msgid="7940372488624630214">"La partition de données de cet appareil doit être convertie en système de fichiers ext4 avant d\'utiliser l\'option de 16 Ko pour les développeurs. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. L\'activation de l\'option de 16 Ko nécessitera ensuite un autre redémarrage. Une fois que vous êtes dans ce mode, vous pouvez basculer entre le mode 4 Ko et le mode 16 Ko avec un seul redémarrage. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applis peuvent ne pas fonctionner. Pour remettre l\'appareil en mode production, vous devrez revenir en mode 4 Ko et ensuite verrouiller le programme d\'amorçage, ce qui réinitialise l\'appareil à ses paramètres par défaut. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage par le fabricant d\'équipement d\'origine dans les Options pour les développeurs. L\'appareil sera nettoyé et le système de fichiers sera remplacé par le système de fichiers ext4 après la confirmation. Une fois cette opération terminée, revenez pour activer à nouveau l\'option de 16 Ko."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Effacer toutes les données"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Échec du reformatage de la partition vers le système de fichiers ext4 et du nettoyage de ses données."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
- <string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Cet appareil doit avoir le programme d\'amorçage déverrouillé avant d\'utiliser l\'option 16 Ko pour les développeurs. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Toutes les données et tous les paramètres de l\'utilisateur seront nettoyés lors de l\'activation du mode 16 Ko. Une fois le programme d\'amorçage déverrouillé, l\'activation de l\'option de 16 Ko nécessitera deux redémarrages. Une fois que vous êtes dans ce mode, vous pouvez basculer entre le mode 4 Ko et le mode 16 Ko avec un seul redémarrage. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applications peuvent ne pas fonctionner. Pour remettre l\'appareil en mode production, vous devrez revenir en mode 4 Ko et ensuite activer le verrouillage par le fabricant d\'équipement d\'origine et verrouiller le programme d\'amorçage de l\'appareil (ce qui le réinitialise à ses paramètres par défaut). Veuillez déverrouiller le programme d\'amorçage et réessayer. Vous trouverez des instructions à ce sujet à la page <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Déverrouillage du programme d\'amorçage requis"</string>
+ <string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Cet appareil doit avoir le programme d\'amorçage déverrouillé avant d\'utiliser l\'option 16 Ko pour les développeurs. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Toutes les données et tous les paramètres de l\'utilisateur seront nettoyés lors de l\'activation du mode 16 Ko. Une fois le programme d\'amorçage déverrouillé, l\'activation de l\'option de 16 Ko nécessitera deux redémarrages. Une fois que vous êtes dans ce mode, vous pouvez basculer entre le mode 4 Ko et le mode 16 Ko avec un seul redémarrage. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applis peuvent ne pas fonctionner. Pour remettre l\'appareil en mode production, vous devrez revenir en mode 4 Ko et ensuite activer le verrouillage par le fabricant d\'équipement d\'origine et verrouiller le programme d\'amorçage de l\'appareil (ce qui le réinitialise à ses paramètres par défaut). Veuillez déverrouiller le programme d\'amorçage et réessayer. Vous trouverez des instructions à ce sujet à la page <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Utilisation du mode agnostique de page 4 Ko"</string>
- <string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Vous êtes dans le mode 4 Ko du mode agnostique de page. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applications peuvent ne pas fonctionner. Pour repasser en mode production, vous devez verrouiller le programme d\'amorçage de l\'appareil. Touchez l\'écran pour en savoir plus."</string>
- <string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Vous êtes dans le mode 4 Ko du mode agnostique de page. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applications peuvent ne pas fonctionner. Pour repasser en mode production, vous devez verrouiller le programme d\'amorçage de l\'appareil. Cette opération réinitialisera à nouveau l\'appareil et rétablira ses paramètres par défaut. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage par le fabricant d\'équipement d\'origine dans les Options pour les développeurs. Si l\'appareil ne démarre pas sous Android ou s\'il est instable, flashez à nouveau l\'appareil avec les dernières images par défaut à partir de la page <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou utilisez la page <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> et sélectionnez « Nettoyer l\'appareil », « Verrouiller le programme d\'amorçage » et « Forcer le flash de toutes les partitions »."</string>
+ <string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Vous êtes dans le mode 4 Ko du mode agnostique de page. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applis peuvent ne pas fonctionner. Pour repasser en mode production, vous devez verrouiller le programme d\'amorçage de l\'appareil. Touchez l\'écran pour en savoir plus."</string>
+ <string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Vous êtes dans le mode 4 Ko du mode agnostique de page. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applis peuvent ne pas fonctionner. Pour repasser en mode production, vous devez verrouiller le programme d\'amorçage de l\'appareil. Cette opération réinitialisera à nouveau l\'appareil et rétablira ses paramètres par défaut. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage par le fabricant d\'équipement d\'origine dans les Options pour les développeurs. Si l\'appareil ne démarre pas sous Android ou s\'il est instable, flashez à nouveau l\'appareil avec les dernières images par défaut à partir de la page <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou utilisez la page <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> et sélectionnez « Nettoyer l\'appareil », « Verrouiller le programme d\'amorçage » et « Forcer le flash de toutes les partitions »."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Utilisation du mode agnostique de page 16 Ko"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Vous êtes dans le mode 16 Ko du mode indépendant de la page. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applications peuvent ne pas fonctionner. Pour repasser en mode production, vous devez basculer vers le mode 4 Ko, puis verrouiller le programme d\'amorçage de l\'appareil. Touchez l\'écran pour en savoir plus."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Vous êtes dans le mode 16 Ko du mode indépendant de la page. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toutes les données stockées sur le téléphone pendant que le programme d\'amorçage est déverrouillé pourraient être compromises. Certaines fonctionnalités seront désactivées dans ces modes, de sorte que certaines applications peuvent ne pas fonctionner. Pour repasser en mode production, vous devez basculer vers le mode 4 Ko, puis verrouiller le programme d\'amorçage de l\'appareil. Cette opération réinitialisera à nouveau l\'appareil et rétablira ses paramètres par défaut. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage par le fabricant d\'équipement d\'origine dans les Options pour les développeurs. Si l\'appareil ne démarre pas sous Android ou s\'il est instable, flashez à nouveau l\'appareil avec les dernières images par défaut à partir de la page <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou utilisez la page <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> et sélectionnez « Nettoyer l\'appareil », « Verrouiller le programme d\'amorçage » et « Forcer le flash de toutes les partitions »."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Mode agnostique de page 16 Ko"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Lire la suite"</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="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Détermine quelle appli gère le raccourci de rapport de bogue sur votre appareil."</string>
<string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personnel"</string>
<string name="work_profile_app_subtext" msgid="5043419461440127879">"Travail"</string>
<string name="system_default_app_subtext" msgid="5212055189703164839">"Paramètres par défaut"</string>
@@ -4984,8 +4982,8 @@
<string name="rtt_settings_visible_during_call" msgid="7866181103286073700"></string>
<string name="rtt_settings_always_visible" msgid="2364173070088756238"></string>
<string name="volte_5G_limited_title" msgid="5908052268836750629">"Désactiver la connexion VoLTE?"</string>
- <string name="volte_5G_limited_text" msgid="7150583768725182345">"Cela désactive aussi votre connexion 5G.\nDurant un appel vocal, vous ne pourrez pas utiliser la connexion Internet et certaines applications pourraient ne pas fonctionner."</string>
- <string name="cached_apps_freezer" msgid="1057519579761550350">"Suspendre l\'exécution pour les applications en cache"</string>
+ <string name="volte_5G_limited_text" msgid="7150583768725182345">"Cela désactive aussi votre connexion 5G.\nDurant un appel vocal, vous ne pourrez pas utiliser la connexion Internet et certaines applis pourraient ne pas fonctionner."</string>
+ <string name="cached_apps_freezer" msgid="1057519579761550350">"Suspendre l\'exécution pour les applis en cache"</string>
<string name="blob_never_expires_text" msgid="7293376386620106623">"N\'expire jamais."</string>
<string name="accessor_never_expires_text" msgid="4647624492147788340">"Le bail n\'expire jamais."</string>
<string name="overlay_settings_title" msgid="1032863083496396365">"Autoriser les superpos. d\'écran pour les paramètres"</string>
@@ -5053,7 +5051,7 @@
<string name="not_allowed_by_ent" msgid="1958611623122304411">"Non autorisé par votre organisation"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Cette fonctionnalité n\'est pas accessible parce que le mode Nuit est activé"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"L\'importance de la notification a bien été réinitialisée."</string>
- <string name="apps_dashboard_title" msgid="3269953499954393706">"Applications"</string>
+ <string name="apps_dashboard_title" msgid="3269953499954393706">"Applis"</string>
<string name="bluetooth_message_access_notification_content" msgid="5111712860712823893">"Un appareil souhaite accéder à vos messages. Touchez l\'écran pour en savoir plus."</string>
<string name="bluetooth_message_access_dialog_title" msgid="9009836130395061579">"Autoriser l\'accès aux messages?"</string>
<string name="bluetooth_message_access_dialog_content" msgid="7186694737578788487">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos messages.\n\nVous ne vous êtes jamais connecté à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
@@ -5070,7 +5068,7 @@
<string name="bluetooth_main_switch_title" msgid="8409835540311309632">"Utiliser le Bluetooth"</string>
<string name="prevent_ringing_main_switch_title" msgid="4726252811262086643">"Utiliser le blocage de la sonnerie"</string>
<string name="use_wifi_hotsopt_main_switch_title" msgid="3909731167290690539">"Utiliser le point d\'accès Wi-Fi"</string>
- <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Utiliser l\'Épinglage d\'application"</string>
+ <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Utiliser l\'Épinglage d\'appli"</string>
<string name="developer_options_main_switch_title" msgid="1720074589554152501">"Utiliser les options pour les développeurs"</string>
<string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Utiliser le service d\'impression"</string>
<!-- no translation found for multiple_users_main_switch_title (9158796544835843201) -->
@@ -5103,7 +5101,7 @@
<string name="require_cellular_encryption_summary" msgid="6090569065420631457">"Cette option est plus sûre, mais peut limiter votre connexion au réseau cellulaire dans certains endroits. Les appels d\'urgence sont toujours autorisés."</string>
<string name="app_info_all_services_label" msgid="1487070364839071105">"Tous les services"</string>
<string name="show_clip_access_notification" msgid="7782300987639778542">"Afficher l\'accès au presse-papiers"</string>
- <string name="show_clip_access_notification_summary" msgid="474090757777203207">"Un message s\'affiche lorsque les applications accèdent à du texte, à des images ou à d\'autres contenus que vous avez copiés"</string>
+ <string name="show_clip_access_notification_summary" msgid="474090757777203207">"Un message s\'affiche lorsque les applis accèdent à du texte, à des images ou à d\'autres contenus que vous avez copiés"</string>
<string name="all_apps" msgid="3054120149509114789">"Toutes les applis"</string>
<string name="request_manage_bluetooth_permission_dont_allow" msgid="8798061333407581300">"Ne pas autoriser"</string>
<string name="uwb_settings_title" msgid="8578498712312002231">"Bande ultralarge (BUL)"</string>
@@ -5116,8 +5114,8 @@
<string name="thread_network_settings_learn_more" msgid="8278498005848565050">"En savoir plus sur Thread"</string>
<string name="camera_toggle_title" msgid="8952668677727244992">"Accès à la caméra"</string>
<string name="mic_toggle_title" msgid="265145278323852547">"Accès au microphone"</string>
- <string name="perm_toggle_description" msgid="5754629581767319022">"Pour les applications et les services"</string>
- <string name="mic_toggle_description" msgid="484139688645092237">"Pour les applications et les services. Si ce paramètre est désactivé, il est possible que les données du microphone soient partagées lorsque vous appelez un numéro d\'urgence."</string>
+ <string name="perm_toggle_description" msgid="5754629581767319022">"Pour les applis et les services"</string>
+ <string name="mic_toggle_description" msgid="484139688645092237">"Pour les applis et les services. Si ce paramètre est désactivé, il est possible que les données du microphone soient partagées lorsque vous appelez un numéro d\'urgence."</string>
<string name="previous_page_content_description" msgid="6438292457923282991">"Précédent"</string>
<string name="next_page_content_description" msgid="1641835099813416294">"Suivant"</string>
<string name="colors_viewpager_content_description" msgid="2591751086138259565">"Aperçu de la couleur"</string>
@@ -5148,7 +5146,7 @@
<string name="tare_rewards_instantaneous" msgid="8358683519945340874">"Récompenses par événement individuel"</string>
<string name="tare_rewards_ongoing" msgid="7657030286658143416">"Récomp. par seconde de durée de l\'évén."</string>
<string name="tare_rewards_max" msgid="5283055625642837010">"Maximum de récompenses par jour"</string>
- <string name="tare_app_install" msgid="7955806910408116882">"Installation d\'applications"</string>
+ <string name="tare_app_install" msgid="7955806910408116882">"Installation d\'applis"</string>
<string name="tare_top_activity" msgid="7266560655483385757">"Activité principale"</string>
<string name="tare_notification_seen" msgid="7829963536020087742">"Notification vue"</string>
<string name="tare_notification_seen_15_min" msgid="832174185809497764">"Notification vue dans les 15 minutes"</string>
@@ -5167,9 +5165,9 @@
<string name="tare_job_min_running" msgid="6167128996320622604">"Tâche à priorité minimale en cours…"</string>
<string name="tare_job_timeout_penalty" msgid="7644332836795492506">"Pénalité expiration du délai de la tâche"</string>
<string name="tare_min_balance_exempted" msgid="6693710075762973485">"Solde minimal avec une charge complète (exemptée)"</string>
- <string name="tare_min_balance_headless_app" msgid="6906353766678577244">"Solde minimal avec une charge complète (application système sans interface)"</string>
- <string name="tare_min_balance_other_app" msgid="3404774196832506476">"Solde minimal avec une charge complète (applications restantes)"</string>
- <string name="tare_min_balance_addition_app_updater" msgid="5391956072471201269">"Ajout de solde minimal avec une charge complète (outil de mise à jour de l\'application)"</string>
+ <string name="tare_min_balance_headless_app" msgid="6906353766678577244">"Solde minimal avec une charge complète (appli système sans interface)"</string>
+ <string name="tare_min_balance_other_app" msgid="3404774196832506476">"Solde minimal avec une charge complète (applis restantes)"</string>
+ <string name="tare_min_balance_addition_app_updater" msgid="5391956072471201269">"Ajout de solde minimal avec une charge complète (outil de mise à jour de l\'appli)"</string>
<string-array name="tare_modifiers_subfactors">
<item msgid="3325940509857535498">"Recharge"</item>
<item msgid="658627268149681677">"Sieste"</item>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Choisissez ce que vous voyez à l\'écran lorsque votre tablette est ancrée. Votre appareil peut consommer plus d\'énergie lorsqu\'un écran de veille est utilisé."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personnaliser"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personnaliser <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Vous devez redémarrer l\'appareil pour activer la prise en charge des fenêtres de forme libre."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Vous devez redémarrer l\'appareil pour forcer le mode Bureau sur des écrans secondaires."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Un redémarrage est requis pour activer la prise en charge des fenêtres de forme libre patrimoniales."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Un redémarrage est requis pour modifier la prise en charge des fenêtres de forme libre."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Un redémarrage est requis pour forcer les fenêtres de forme libre sur les écrans secondaires."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Redémarrer maintenant"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Redémarrer plus tard"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Son spatial"</string>
@@ -5197,7 +5196,7 @@
<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="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_permissions_sync_summary" msgid="8125037984381432059">"Accordez à votre montre les mêmes autorisations de l\'appli que celles que vous avez accordées sur ce téléphone"</string>
<string name="bluetooth_details_audio_device_types_title" msgid="1889644189800180316">"Type d\'appareil audio"</string>
<string name="bluetooth_details_audio_device_type_unknown" msgid="5299284975435974206">"Non défini"</string>
<string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Haut-parleur"</string>
@@ -5210,7 +5209,7 @@
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurer la limitation du taux de téléchargement sur le réseau"</string>
<string name="ingress_rate_limit_no_limit_entry" msgid="8741098826008012163">"Aucune limite"</string>
<string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Désactiver les restrict. pour les processus enfant"</string>
- <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Désactivez les restrictions sur l\'utilisation des ressources système pour les processus d\'application relatifs aux profils pour enfants"</string>
+ <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Désactivez les restrictions sur l\'utilisation des ressources système pour les processus d\'appli relatifs aux profils pour enfants"</string>
<string name="enable_notes_role_title" msgid="7662702013496114763">"Forcer l\'activation de la fonction Notes"</string>
<string name="enable_notes_role_summary" msgid="5495721409392395089">"Activez les intégrations de systèmes de prise de notes par le biais de la fonction Notes. Si la fonction Notes est déjà activée, aucune action n\'est nécessaire. Nécessite un redémarrage."</string>
<string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Diffusion"</string>
@@ -5230,21 +5229,21 @@
<string name="bt_le_audio_qr_code_is_not_valid_format" msgid="7821837654128137901">"Le format du code QR est incorrect"</string>
<string name="convert_to_esim_title" msgid="71037864129009206">"Convertir à une carte eSIM"</string>
<string name="transfer_esim_to_another_device_title" msgid="5286117866086383192">"Transférer la carte eSIM à un autre appareil"</string>
- <string name="background_install_preference_summary" msgid="3065219346519340364">"{count,plural, =1{# application}one{# application}other{# applications}}"</string>
- <string name="background_install_title" msgid="607913515188276168">"Applications installées en arrière-plan"</string>
- <string name="background_install_summary" msgid="3890296129543309666">"Le fabricant de votre appareil peut installer des applications sur votre appareil en arrière-plan, ou autoriser votre fournisseur de services et d\'autres partenaires à le faire.\n\nLes applications répertoriées ici ne sont pas nécessaires au fonctionnement normal de votre appareil. Vous pouvez désinstaller les applications que vous ne voulez pas."</string>
- <string name="background_install_feature_list_no_entry" msgid="2071343281272266154">"Aucune application installée en arrière-plan"</string>
- <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Désinstaller l\'application"</string>
- <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Applications installées au cours du dernier mois}one{Applications installées au cours du dernier (#) mois}other{Applications installées au cours des # derniers mois}}"</string>
- <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Applications installées il y a plus de # mois}one{Applications installées il y a plus de # mois}other{Applications installées il y a plus de # mois}}"</string>
+ <string name="background_install_preference_summary" msgid="3065219346519340364">"{count,plural, =1{# appli}one{# appli}other{# applis}}"</string>
+ <string name="background_install_title" msgid="607913515188276168">"Applis installées en arrière-plan"</string>
+ <string name="background_install_summary" msgid="3890296129543309666">"Le fabricant de votre appareil peut installer des applis sur votre appareil en arrière-plan, ou autoriser votre fournisseur de services et d\'autres partenaires à le faire.\n\nLes applis répertoriées ici ne sont pas nécessaires au fonctionnement normal de votre appareil. Vous pouvez désinstaller les applis que vous ne voulez pas."</string>
+ <string name="background_install_feature_list_no_entry" msgid="2071343281272266154">"Aucune appli installée en arrière-plan"</string>
+ <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Désinstaller l\'appli"</string>
+ <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Applis installées au cours du dernier mois}one{Applis installées au cours du dernier (#) mois}other{Applis installées au cours des # derniers mois}}"</string>
+ <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Applis installées il y a plus de # mois}one{Applis installées il y a plus de # mois}other{Applis installées il y a plus de # mois}}"</string>
<string name="aspect_ratio_title" msgid="2451826875939676101">"Proportions"</string>
- <string name="aspect_ratio_summary" msgid="4056406351663726494">"Essayez d\'autres proportions pour afficher cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Essayez d\'autres proportions pour afficher cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Il se peut que certaines applications ne soient pas optimisées pour certaines proportions."</string>
- <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Essayez d\'autres proportions pour afficher une application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Essayez d\'autres proportions pour afficher une application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Il se peut que certaines applications ne soient pas optimisées pour certaines proportions."</string>
+ <string name="aspect_ratio_summary" msgid="4056406351663726494">"Essayez d\'autres proportions pour afficher cette appli si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="aspect_ratio_main_summary" msgid="4141964559612756940">"Essayez d\'autres proportions pour afficher cette appli si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Il se peut que certaines applis ne soient pas optimisées pour certaines proportions."</string>
+ <string name="aspect_ratio_summary_text" msgid="4737461467467220325">"Essayez d\'autres proportions pour afficher une appli si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+ <string name="aspect_ratio_main_summary_text" msgid="5544816872094235840">"Essayez d\'autres proportions pour afficher une appli si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Il se peut que certaines applis ne soient pas optimisées pour certaines proportions."</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Applis suggérées"</string>
<string name="user_aspect_ratio_changed_apps_label" msgid="2096614916172567672">"Applis modif."</string>
- <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Application par défaut"</string>
+ <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Appli par défaut"</string>
<string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Plein écran"</string>
<string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Moitié de l\'écran"</string>
<string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Proportions de l\'appareil"</string>
@@ -5252,7 +5251,7 @@
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
<string name="user_aspect_ratio_option_a11y" msgid="1235801996029095219">"<xliff:g id="NUMERATOR">%1$s</xliff:g> par <xliff:g id="DENOMINATOR">%2$s</xliff:g>"</string>
- <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"L\'application redémarrera lorsque vous aurez modifié les proportions. Vous pourriez perdre les modifications non enregistrées. Il se peut que certaines applications ne soient pas optimisées pour certaines proportions."</string>
+ <string name="app_aspect_ratio_footer" msgid="4029509301182067475">"L\'appli redémarrera lorsque vous aurez modifié les proportions. Vous pourriez perdre les modifications non enregistrées. Il se peut que certaines applis ne soient pas optimisées pour certaines proportions."</string>
<string name="aspect_ratio_experimental_title" msgid="9088785421062044831">"Proportions (expérimental)"</string>
<string name="aspect_ratio_experiment_title" msgid="128614319422121040">"Proportions (test)"</string>
<string name="aspect_ratio_labs_title" msgid="6733893837442759383">"Proportions (labos)"</string>
@@ -5291,7 +5290,7 @@
<string name="contrast_default" msgid="8918545965525226966">"Par défaut"</string>
<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="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Cette appli 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">"Désactivé"</string>
<string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Désactivé"</string>
@@ -5301,19 +5300,19 @@
<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="magnification_feature_summary" msgid="2053971569640663564">"Zoome 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="about_phone_device_name_warning" msgid="3243226572404472381">"Le nom de votre appareil est visible aux applis que vous avez installées. Il est également possible que d\'autres personnes voient le nom de votre appareil lorsque vous vous connectez à des appareils Bluetooth ou à un réseau Wi-Fi, ou lorsque vous configurez un point d\'accès Wi-Fi."</string>
<string name="grammatical_gender_title" msgid="8584242850477270828">"Genre grammatical"</string>
<string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Sélectionnez un genre grammatical"</string>
<string name="content_protection_preference_title" msgid="5069260032659193074">"Analyse d\'applis 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_summary" msgid="2252393849408445391">"Vérifiez l\'activité des applis pour détecter les tentatives d\'hameçonnage"</string>
<string name="content_protection_preference_user_consent_switch_title" msgid="1797782616799594426">"Utiliser l\'analyse des applis 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_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Utiliser l\'analyse des applis 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>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 5843124..8a9f7b0 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Cette action est nécessaire, car la vérification de l\'identité est activée"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilité"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Clavier physique"</string>
- <string name="show_ime" msgid="4334255501724746849">"Utiliser le clavier à l\'écran"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Afficher le clavier virtuel même lorsque le clavier physique est actif"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Touches à rebonds"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Le clavier ignore les frappes rapides et consécutives d\'une même touche dans un intervalle de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Touches lentes"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuer"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuler"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Paramètres d\'agrandissement"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Déplacer la loupe avec un doigt"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Faites glisser un doigt pour vous déplacer sur l\'écran."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Déplacez la zone d\'agrandissement en faisant glisser un doigt sur cette dernière."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Déplacez la zone d\'agrandissement en faisant glisser deux doigts sur cette dernière."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Indisponible lors de l\'agrandissement d\'une partie de l\'écran uniquement"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Appuyer sur un bouton pour zoomer"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Faites un zoom avant rapide sur l\'écran pour agrandir le contenu"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Pour faire un zoom avant :</b><br/> {0,number,integer}. Utilisez le raccourci pour démarrer l\'agrandissement<br/> {1,number,integer}. Appuyez sur l\'écran<br/> {2,number,integer}. Faites glisser deux doigts pour vous déplacer sur l\'écran<br/> {3,number,integer}. Pincez avec deux doigts pour régler le zoom<br/> {4,number,integer}. Utilisez le raccourci pour arrêter l\'agrandissement<br/><br/> <b>Pour faire un zoom avant temporaire :</b><br/> {0,number,integer}. Assurez-vous que le type d\'agrandissement est défini sur plein écran<br/> {1,number,integer}. Utilisez le raccourci pour démarrer l\'agrandissement<br/> {2,number,integer}. Appuyez de manière prolongée n\'importe où sur l\'écran<br/> {3,number,integer}. Faites glisser un doigt pour vous déplacer sur l\'écran<br/> {4,number,integer}. Relevez le doigt pour arrêter l\'agrandissement"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Pour faire un zoom avant :</b><br/> {0,number,integer}. Utilisez le raccourci pour agrandir<br/> {1,number,integer}. Appuyez sur l\'écran<br/> {2,number,integer}. Faites glisser deux doigts pour vous déplacer sur l\'écran<br/> {3,number,integer}. Pincez avec les deux doigts pour régler le zoom<br/> {4,number,integer}. Utilisez le raccourci pour arrêter de zoomer<br/><br/> Vous pouvez également faire un zoom avant temporaire, et plus encore."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Pour faire un zoom avant :</b><br/> {0,number,integer}. Utilisez le raccourci pour agrandir<br/> {1,number,integer}. Appuyez sur l\'écran<br/> {2,number,integer}. Faites glisser un ou deux doigts pour vous déplacer sur l\'écran<br/> {3,number,integer}. Pincez avec les deux doigts pour régler le zoom<br/> {4,number,integer}. Utilisez le raccourci pour arrêter de zoomer<br/><br/> Vous pouvez également faire un zoom avant temporaire, et plus encore."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Lorsque l\'option \"Agrandissement\" est activée, vous pouvez effectuer un zoom avant sur votre écran.\n\n"<b>"Pour zoomer"</b>", activez l\'option \"Agrandissement\", puis appuyez n\'importe où sur l\'écran.\n"<ul><li>"Pour faire défiler l\'écran, faites glisser deux doigts ou plus dessus."</li>\n<li>"Pour régler le niveau de zoom, pincez l\'écran avec deux doigts ou plus."</li></ul>\n\n<b>"Pour faire un zoom temporaire"</b>", lancez l\'option \"Agrandissement\", puis appuyez de manière prolongée n\'importe où sur l\'écran.\n"<ul><li>"Pour vous déplacer sur l\'écran, faites glisser un doigt dessus."</li>\n<li>"Pour faire un zoom arrière, relevez le doigt."</li></ul>\n\n"Il est impossible de faire un zoom avant sur le clavier ni sur la barre de navigation."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> sur <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Raccourci du bouton Accessibilité"</string>
@@ -2232,14 +2227,14 @@
<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="1141723096904904336">"<b>Pour démarrer</b><br/> {0,number,integer}. Accédez aux paramètres d\'accessibilité<br/> {1,number,integer}. Sélectionnez une fonctionnalité et appuyez sur le raccourci<br/> {2,number,integer}. Précisez si vous souhaitez utiliser un bouton ou un geste pour accéder au paramètre<br/>."</string>
+ <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"<b>Pour démarrer</b><br/> {0,number,integer}. Accédez aux paramètres d\'accessibilité<br/> {1,number,integer}. Sélectionnez une fonctionnalité et appuyez sur le raccourci<br/> {2,number,integer}. Précisez si vous souhaitez utiliser un bouton ou un geste pour accéder au paramètre<br/>"</string>
<string name="accessibility_button_description" msgid="7669538706120092399">"<b>Pour démarrer</b><br/> {0,number,integer}. Accédez aux paramètres d\'accessibilité<br/> {1,number,integer}. Sélectionnez une fonctionnalité et appuyez sur le raccourci<br/> {2,number,integer}. Choisissez le bouton pour accéder à cette fonctionnalité<br/>."</string>
<string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Utiliser bouton ou geste"</string>
<string name="accessibility_button_location_title" msgid="7182107846092304942">"Position"</string>
<string name="accessibility_button_size_title" msgid="5785110470538960881">"Taille"</string>
<string name="accessibility_button_fade_title" msgid="8081993897680588829">"Disparaît s\'il n\'est pas utilisé"</string>
<string name="accessibility_button_fade_summary" msgid="7865950833524973709">"Disparaît après quelques secondes pour que vous puissiez mieux voir l\'écran"</string>
- <string name="accessibility_button_opacity_title" msgid="4727355657530362289">"Transparent s\'il n\'est pas utilisé"</string>
+ <string name="accessibility_button_opacity_title" msgid="4727355657530362289">"Transparence quand il n\'est pas utilisé"</string>
<string name="accessibility_button_low_label" msgid="4193015407828927741">"Transparent"</string>
<string name="accessibility_button_high_label" msgid="9138077512008190896">"Opaque"</string>
<string name="accessibility_toggle_high_text_contrast_preference_title" msgid="1830189632458752698">"Texte avec contraste élevé"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Créer un mode"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personnalisé"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limiter les interruptions"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activer le mode Ne pas déranger"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Les alarmes et les sons des contenus multimédias peuvent interrompre le mode Ne pas déranger"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Définir une programmation"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programmation"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Activer automatiquement"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programme"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Tél. en silence à certains moments"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Définir les règles du mode Ne pas déranger"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"Ouvrir la notification"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Autoriser la mise en attente des notifications"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Pastille de notification sur l\'icône de l\'application"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Groupes de notifications"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bulles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bulles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Afficher cette conversation sous forme de bulle"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Toutes"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Autoriser des applications à ignorer ce mode"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Applis qui peuvent interrompre"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Sélectionnez plus d\'applications"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Étui de transport"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batterie"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panneau des paramètres"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Forcer le mode ordinateur"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forcer le mode ordinateur expérimental sur les écrans secondaires"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Activer les fenêtres de forme libre"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Permet d\'activer la compatibilité avec les fenêtres de forme libre."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Activer le fenêtrage de forme libre sur l\'écran secondaire"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Permet d\'activer les fenêtres de forme libre sur l\'écran secondaire uniquement."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Activer les applis non redimensionnables en mode multifenêtre"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Autoriser le mode multifenêtre pour les applis non redimensionnables"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Forcer l\'activation du thème sombre"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"La partition des données de cet appareil doit être convertie en ext4 avant d\'utiliser l\'option 16 kB pour les développeurs. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toute donnée stockée sur le téléphone alors que le bootloader est déverrouillé peut être exposée à un risque. L\'activation du mode 16 kB nécessitera un ou plusieurs redémarrages après cette opération. Une fois que vous êtes dans ce mode, vous pouvez passer du mode 4 kB au mode 16 kB et inversement par le biais d\'un seul redémarrage. Certaines fonctionnalités seront désactivées dans ces modes, et certaines applications sont susceptibles de ne pas fonctionner. Pour remettre l\'appareil en mode Production, il vous faut repasser en mode 4 kB, puis verrouiller le bootloader, ce qui rétablit la configuration d\'usine de l\'appareil. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage OEM dans les Options pour les développeurs. Après confirmation, l\'appareil sera nettoyé et le système de fichiers sera remplacé par ext4. Une fois cette opération terminée, revenez pour repasser en mode 16 kB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Effacer les données"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Échec du reformatage et de l\'effacement de la partition de données vers ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Nécessite le déverrouillage du bootloader"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Le bootloader de cet appareil doit être déverrouillé pour pouvoir utiliser l\'option 16 kB pour les développeurs. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toute donnée stockée sur le téléphone alors que le bootloader est déverrouillé peut être exposée à un risque. L\'ensemble des données et paramètres de l\'utilisateur seront effacés après l\'activation du mode 16 kB. Une fois le bootloader déverrouillé, l\'activation du mode 16 kB nécessitera deux redémarrages. Une fois que vous êtes dans ce mode, vous pouvez passer du mode 4 kB au mode 16 kB et inversement par le biais d\'un seul redémarrage. Certaines fonctionnalités seront désactivées dans ces modes, et certaines applications sont susceptibles de ne pas fonctionner. Pour remettre l\'appareil en mode Production, il vous faut repasser en mode 4 kB, puis verrouiller l\'OEM/le bootloader (ce qui rétablit la configuration d\'usine de l\'appareil). Verrouillez le bootloader, puis réessayez. Vous trouverez des instructions pour vous aider à réaliser cette opération à l\'adresse <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Utilisation du mode agnostique de page mémoire 4 kB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Vous utilisez le mode 4 kB du mode agnostique de page mémoire. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toute donnée stockée sur le téléphone alors que le bootloader est déverrouillé peut être exposée à un risque. Certaines fonctionnalités seront désactivées dans ces modes, et certaines applications sont susceptibles de ne pas fonctionner. Pour repasser en mode Production, vous devez verrouiller le bootloader de l\'appareil. Appuyez ici pour en savoir plus."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Vous utilisez le mode 4 kB du mode agnostique de page mémoire. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toute donnée stockée sur le téléphone alors que le bootloader est déverrouillé peut être exposée à un risque. Certaines fonctionnalités seront désactivées dans ces modes, et certaines applications sont susceptibles de ne pas fonctionner. Pour repasser en mode Production, vous devez verrouiller le bootloader de l\'appareil. Cela permet de rétablir la configuration d\'usine de l\'appareil à nouveau et d\'en rétablir les paramètres de production. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage OEM dans les Options pour les développeurs. Si l\'appareil ne parvient pas à démarrer sous Android ou s\'il est instable, flashez de nouveau l\'appareil à l\'aide des dernières images d\'usine disponibles à l\'adresse <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou utilisez <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> et sélectionnez \"Nettoyer l\'appareil\", \"Verrouiller le bootloader\", puis \"Forcer le flash de l\'ensemble des partitions\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Utilisation du mode agnostique de page mémoire 16 kB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Vous utilisez le mode 16 Ko du mode agnostique de page mémoire. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toute donnée stockée sur le téléphone alors que le bootloader est déverrouillé peut être exposée à un risque. Certaines fonctionnalités seront désactivées dans ces modes, et certaines applications sont susceptibles de ne pas fonctionner. Pour remettre l\'appareil en mode Production, vous devez repasser au mode 4 Ko, puis verrouiller le bootloader de l\'appareil. Appuyez ici pour en savoir plus."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Vous utilisez le mode 16 Ko du mode agnostique de page mémoire. L\'intégrité du logiciel ne peut pas être garantie dans ce mode, et toute donnée stockée sur le téléphone alors que le bootloader est déverrouillé peut être exposée à un risque. Certaines fonctionnalités seront désactivées dans ces modes, et certaines applications sont susceptibles de ne pas fonctionner. Pour remettre l\'appareil en mode Production, vous devez repasser au mode 4 Ko, puis verrouiller le bootloader de l\'appareil. Cela permet de rétablir la configuration d\'usine de l\'appareil à nouveau et d\'en rétablir les paramètres de production. Une fois que l\'appareil a bien démarré sous Android, désactivez le déverrouillage OEM dans les Options pour les développeurs. Si l\'appareil ne parvient pas à démarrer sous Android ou s\'il est instable, flashez de nouveau l\'appareil à l\'aide des dernières images d\'usine disponibles à l\'adresse <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou utilisez <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> et sélectionnez \"Nettoyer l\'appareil\", \"Verrouiller le bootloader\", puis \"Forcer le flash de l\'ensemble des partitions\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Mode agnostique de page mémoire 16 kB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Lire la suite"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Gestionnaire de rapport de bug"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Choisissez le contenu à afficher à l\'écran quand la tablette est sur la station d\'accueil. Votre appareil peut consommer plus d\'énergie quand un économiseur d\'écran est utilisé."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personnaliser"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personnaliser <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Un redémarrage est nécessaire pour activer la prise en charge du format libre."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Un redémarrage est nécessaire pour forcer le mode bureau sur les écrans secondaires."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Un redémarrage est nécessaire pour activer la prise en charge de l\'ancienne fonctionnalité de fenêtrage de forme libre."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Un redémarrage est nécessaire pour modifier la prise en charge du fenêtrage de forme libre."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Un redémarrage est nécessaire pour forcer le fenêtrage de forme libre sur les écrans secondaires."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Redémarrer maintenant"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Redémarrer plus tard"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Son spatial"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 708c38c..10efa5f 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Esta acción é necesaria porque está activada a comprobación de identidade"</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>
@@ -615,7 +616,7 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Instala aplicacións"</b>\n"Instala as aplicacións que queiras manter no teu espazo privado"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Importante"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"As aplicacións desactívanse ao bloquear o espazo privado"</b>\n"Cando bloqueas o espazo, as aplicacións que están nel detéñense, polo que non che enviarán notificacións"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Os espazos privados non son axeitados para as aplicacións que deben executarse en segundo plano ou enviar notificacións esenciais, como as aplicacións médicas. A razón é que se deteñen as notificacións e a actividade en segundo plano cando bloqueas o espazo.\n\nUnha vez bloqueado, as aplicacións do espazo privado non aparecerán no xestor de permisos, no panel de privacidade nin noutras opcións de configuración\n\nEste espazo 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_apps_permission_text" msgid="4416201648436201393">"Os espazos privados non son axeitados para as aplicacións que deben executarse en segundo plano ou enviar notificacións esenciais, como as aplicacións médicas. A razón é que se deteñen as notificacións e a actividade en segundo plano cando bloqueas o espazo.\n\nUnha vez bloqueado, as aplicacións do espazo privado non aparecerán no xestor de permisos, no panel de privacidade nin noutras opcións de configuración.\n\nEste espazo 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_settings_footer_text" msgid="3742468470394835356">"Os espazos privados non son axeitados para as aplicacións que deben executarse en segundo plano ou enviar notificacións esenciais, como as aplicacións médicas. A razón é que se deteñen as notificacións e a actividade en segundo plano cando bloqueas o espazo.\n\nUnha vez bloqueado, as aplicacións do espazo privado non aparecerán no xestor de permisos, no panel de privacidade nin noutras opcións de configuración\n\nEste espazo non se pode restaurar noutro dispositivo. Terás que configurar un novo se queres usalo noutro aparello.\n\nCalquera usuario que instale aplicacións maliciosas no teu dispositivo ou o conecte a un ordenador podería acceder ao teu espazo privado."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Máis información sobre o espazo privado"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Esta acción tardará uns intres"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opcións"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidade"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
- <string name="show_ime" msgid="4334255501724746849">"Utilizar teclado en pantalla"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Móstrase na pantalla mentres o teclado físico estea activo"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Teclas de rebote"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"O teclado ignora as pulsacións repetidas rapidamente da mesma tecla nun intervalo de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar igualmente"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configuración da ampliación"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mover a lupa cun dedo"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arrastra un dedo para moverte pola pantalla"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Arrastra un dedo para mover a área de ampliación."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Arrastra dous dedos para mover a área de ampliación."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Non dispoñible cando só se amplíe unha parte da pantalla"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Toca un botón para achegar o zoom"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Se queres ampliar o contido, achégao rapidamente na pantalla usando o zoom"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Se queres achegar o contido usando o zoom, sigue estes pasos:</b><br/> {0,number,integer}. Utiliza o atallo cando queiras iniciar a ampliación<br/> {1,number,integer}. Toca a pantalla<br/> {2,number,integer}. Para moverte pola pantalla, arrastra dous dedos<br/> {3,number,integer}. Cando queiras axustar o zoom, belisca a pantalla con dous dedos<br/> {4,number,integer}. Utiliza o atallo para deter a ampliación<br/><br/> <b>Para achegar o contido temporalmente usando o zoom, sigue estes pasos:</b><br/> {0,number,integer}. Asegúrate de que o tipo de ampliación estea configurado a pantalla completa<br/> {1,number,integer}. Utiliza o atallo cando queiras iniciar a ampliación<br/> {2,number,integer}. Mantén premido calquera punto da pantalla<br/> {3,number,integer}. Para moverte pola pantalla, arrastra o dedo<br/> {4,number,integer}. Levanta o dedo para deter a ampliación"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Se queres achegar o contido usando o zoom, sigue estes pasos:</b><br/> {0,number,integer}. Utiliza o atallo cando queiras iniciar a ampliación<br/> {1,number,integer}. Toca a pantalla<br/> {2,number,integer}. Para moverte pola pantalla, arrastra dous dedos<br/> {3,number,integer}. Cando queiras axustar o zoom, belisca a pantalla con dous dedos<br/> {4,number,integer}. Usa o atallo para deter a ampliación<br/><br/> Tamén podes achegar a imaxe temporalmente, entre outras cousas."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Se queres achegar o contido usando o zoom, sigue estes pasos:</b><br/> {0,number,integer}. Utiliza o atallo cando queiras iniciar a ampliación<br/> {1,number,integer}. Toca a pantalla<br/> {2,number,integer}. Para moverte pola pantalla, arrastra un ou dous dedos<br/> {3,number,integer}. Cando queiras axustar o zoom, belisca a pantalla con dous dedos<br/> {4,number,integer}. Usa o atallo para deter a ampliación<br/><br/> Tamén podes achegar a imaxe temporalmente, entre outras cousas."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Ao activar a ampliación, podes achegar o contido da pantalla.\n\n"<b>"Para utilizar o zoom"</b>", inicia a ampliación e toca calquera parte da pantalla.\n"<ul><li>"Arrastra 2 ou máis dedos para desprazarte."</li>\n<li>"Belisca con 2 ou máis dedos para axustar o zoom."</li></ul>\n\n<b>"Para utilizar o zoom de forma temporal"</b>", inicia a ampliación e mantén premida calquera parte da pantalla.\n"<ul><li>"Arrastra o dedo para moverte pola pantalla."</li>\n<li>"Levanta o dedo para afastar a imaxe ou o texto."</li></ul>\n\n"Ten en conta que non se pode ampliar o teclado nin a barra de navegación."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Páxina <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Atallo do botón Accesibilidade"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Crear un modo"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar as interrupcións"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activar modo Non molestar"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"As alarmas e os sons multimedia poden interromper o modo Non molestar"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Definir un horario"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programar"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h e <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Activar automaticamente"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Planificación"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silencia o teléfono en horas concretas"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Definir normas de Non molestar"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"abre a notificación"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Permitir adiar notificacións"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Punto de notificacións nas iconas"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Burbullas"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbullas"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostrar esta conversa nunha burbulla"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todas"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que as aplicacións ignoren o modo Non molestar"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicacións que poden interromper"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecciona máis aplicacións"</string>
@@ -4347,7 +4347,7 @@
<string name="system_navigation_title" msgid="4890381153527184636">"Modo de navegación"</string>
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Navegación con 2 botóns"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Para cambiar de aplicación, pasa o dedo cara arriba no botón Inicio. Para ver todas as aplicacións pasa o dedo cara arriba de novo. Para volver á pantalla anterior, toca o botón Atrás."</string>
- <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Seguranza e emerxencia"</string>
+ <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Seguranza persoal e emerxencia"</string>
<string name="emergency_dashboard_summary" msgid="401033951074039302">"Emerxencia SOS, información médica, alertas"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Navegación con xestos"</string>
<string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"Para ir ao inicio, pasa o dedo cara arriba desde a parte inferior da pantalla. Para cambiar de aplicación, pasa o dedo cara arriba desde a parte inferior da pantalla, mantena premida e sóltaa. Para volver á pantalla anterior, pasa o dedo desde o bordo esquerdo ou dereito."</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Carcasa"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batería"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel de configuración"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Forzar modo de escritorio"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forza o modo de escritorio experimental en pantallas secundarias"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Activar ventás de forma libre"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Activa a compatibilidade coas ventás de forma libre."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Activar ventás forma libre na pantalla secundaria"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Activa as ventás de forma libre só na pantalla secundaria."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Activar aplicacións sen axuste de tamaño no modo multiventá"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite utilizar as aplicacións sen axuste de tamaño no modo multiventá"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Ignorar Forzar modo escuro"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Esta partición de datos do dispositivo debe converterse a ext4 antes de utilizar a opción de programador de 16 kB. A integridade do software non se pode garantir neste modo, e os datos almacenados no teléfono mentres está desbloqueado o cargador de arranque poden correr perigo. Para activar a opción de 16 kB será necesario reiniciar o dispositivo unha vez máis. Unha vez que esteas neste modo, poderás alternar entre o modo de 4 kB e 16 kB só cun reinicio. Desactivaranse algunhas funcións nestes modos, polo que pode que non funcionen algunhas aplicacións. Para facer que o dispositivo retorne ao modo de produción, terás que volver ao modo de 4 kB e bloquear o cargador de arranque, o que restablecerá a configuración de fábrica do dispositivo. Despois de que o dispositivo se inicie correctamente en Android, desactiva o desbloqueo do fabricante do equipo orixinal en Opcións de programador. Tras a confirmación, borraranse os datos do dispositivo e cambiarase o sistema de ficheiros a ext4. Unha vez completada esta operación, volve para activar de novo o modo de 16 kB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Borrar todos os datos"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Produciuse un erro ao borrar a partición de datos e cambiar o formato a ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Cómpre desbloquear o cargador de arranque"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Cómpre desbloquear o cargador de arranque deste dispositivo antes de utilizar a opción de programador de 16 kB. A integridade do software non se pode garantir neste modo, e os datos almacenados no teléfono mentres está desbloqueado o cargador de arranque poden correr perigo. Borraranse todos os datos e opcións de configuración do usuario cando se active o modo de 16 kB. Despois de desbloquear o cargador de arranque, haberá que reiniciar o dispositivo dúas veces para activar a opción de 16 kB. Unha vez que esteas neste modo, poderás alternar entre o modo de 4 kB e 16 kB só cun reinicio. Desactivaranse algunhas funcións nestes modos, polo que pode que non funcionen algunhas aplicacións. Para facer que o dispositivo retorne ao modo de produción, terás que volver ao modo de 4 kB e bloquear o cargador de arranque ou o fabricante do equipo orixinal, o que restablecerá a configuración de fábrica do dispositivo. Desbloquea o cargador de arranque e téntao de novo. Podes consultar as instrucións deste proceso en <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Estase usando o modo independente de páxina de 4 kB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Estás usando o modo independente de páxina de 4 kB. A integridade do software non se pode garantir neste modo, e os datos almacenados no teléfono mentres está desbloqueado o cargador de arranque poden correr perigo. Desactivaranse algunhas funcións nestes modos, polo que pode que non funcionen algunhas aplicacións. Para facer que retorne ao modo de produción, terás que bloquear o cargador de arranque do dispositivo. Toca para obter máis información."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Estás usando o modo independente de páxina de 4 kB. A integridade do software non se pode garantir neste modo, e os datos almacenados no teléfono mentres está desbloqueado o cargador de arranque poden correr perigo. Desactivaranse algunhas funcións nestes modos, polo que pode que non funcionen algunhas aplicacións. Para facer que retorne ao modo de produción, terás que bloquear o cargador de arranque do dispositivo. Esta acción restablecerá de novo a configuración de fábrica do dispositivo e restaurará a súa configuración de produción. Despois de que o dispositivo se inicie correctamente en Android, desactiva o desbloqueo do fabricante do equipo orixinal en Opcións de programador. Se o dispositivo non arranca en Android ou é inestable, volve instalar as últimas imaxes de fábrica desde <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou usa <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> e selecciona as opcións de borrar datos do dispositivo, bloquear o cargador de arranque e forzar a instalación de todas as particións."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Estase usando o modo independente de páxina de 16 kB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Estás na opción de 16 kB do modo independente de páxina. A integridade do software non se pode garantir neste modo, e os datos almacenados no teléfono mentres está desbloqueado o cargador de arranque poden correr perigo. Desactivaranse algunhas funcións nestes modos, polo que pode que non funcionen algunhas aplicacións. Para facer que retorne ao modo de produción, terás que volver ao modo de 4 kB e bloquear o cargador de arranque do dispositivo. Toca para obter máis información."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Estás na opción de 16 kB do modo independente de páxina. A integridade do software non se pode garantir neste modo, e os datos almacenados no teléfono mentres está desbloqueado o cargador de arranque poden correr perigo. Desactivaranse algunhas funcións nestes modos, polo que pode que non funcionen algunhas aplicacións. Para facer que retorne ao modo de produción, terás que volver ao modo de 4 kB e bloquear o cargador de arranque do dispositivo. Esta acción restablecerá de novo a configuración de fábrica do dispositivo e restaurará a súa configuración de produción. Despois de que o dispositivo se inicie correctamente en Android, desactiva o desbloqueo do fabricante do equipo orixinal en Opcións de programador. Se o dispositivo non arranca en Android ou é inestable, volve instalar as últimas imaxes de fábrica desde <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou usa <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> e selecciona as opcións de borrar datos do dispositivo, bloquear o cargador de arranque e forzar a instalación de todas as particións."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Modo independente de páxina de 16 kB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Ler máis"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Controlador do Informe de erros"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Escolle o que aparecerá na pantalla cando a tableta estea na súa base. Pode que o dispositivo utilice máis enerxía se se usa un protector de pantalla."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Cómpre reiniciar o dispositivo para activar a compatibilidade coa forma libre."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Cómpre reiniciar o dispositivo para forzar o modo de escritorio nas pantallas secundarias."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Cómpre reiniciar o dispositivo para activar a compatibilidade coas ventás de forma libre antigas."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Cómpre reiniciar o dispositivo para cambiar a compatibilidade coas ventás de forma libre."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Cómpre reiniciar o dispositivo para forzar o uso de ventás de forma libre nas pantallas secundarias."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar máis adiante"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio espacial"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 1b7b119..5ea12a2 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ફેસ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ફેસ, ફિંગરપ્રિન્ટ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ફેસ, ફિંગરપ્રિન્ટ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ઓળખની તપાસ ચાલુ હોવાથી આમ કરવું જરૂરી છે"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"વિકલ્પો"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ઍક્સેસિબિલિટી"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"ભૌતિક કીબોર્ડ"</string>
- <string name="show_ime" msgid="4334255501724746849">"ઑન-સ્ક્રીન કીબોર્ડનો ઉપયોગ કરો"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"જ્યારે ભૌતિક કીબોર્ડ સક્રિય હોય ત્યારે તેને સ્ક્રીન પર રાખો"</string>
<string name="bounce_keys" msgid="7419450970351743904">"બાઉન્સ કી"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> msની અંદર એક જ કીને વારંવાર ઝડપથી દબાવવાની પ્રક્રિયાની કીબોર્ડ અવગણના કરે છે"</string>
<string name="slow_keys" msgid="2891452895499690837">"ધીમી કી"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"કોઈ મોડ બનાવો"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"કસ્ટમ"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"વિક્ષેપો મર્યાદિત કરો"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"ખલેલ પાડશો નહીં ચાલુ કરો"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"અલાર્મ અને મીડિયાના સાઉન્ડ વિક્ષેપ કરી શકે છે"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"શેડ્યૂલ સેટ કરો"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"શેડ્યૂલ"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> કલાક, <xliff:g id="MINUTES">%2$d</xliff:g> મિનિટ"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"ઑટોમૅટિક રીતે ચાલુ કરો"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"શેડ્યૂલ"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"ચોક્કસ સમયે ફોનના અવાજને મ્યૂટ કરો"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"ખલેલ પાડશો નહીંના નિયમો સેટ કરો"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"નોટિફિકેશન ખોલો"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"નોટિફિકેશન સ્નૂઝ કરવાની મંજૂરી આપો"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ઍપ આઇકન પર નોટિફિકેશનનું ચિહ્ન"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"નોટિફિકેશન બંડલ"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"બબલ"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"બબલ"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"આ વાતચીતને બબલ તરીકે બતાવો"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"બધી"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"અૅપને ઓવરરાઇડ કરવાની મંજૂરી આપો"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"વિક્ષેપ ઊભો કરી શકે તેવી ઍપ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"વધુ ઍપ પસંદ કરો"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"કેસ"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"બૅટરી"</string>
<string name="settings_panel_title" msgid="346363079938069215">"સેટિંગ પૅનલ"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"ફરજિયાત ડેસ્કટૉપ મોડ ચાલુ કરો"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"સેકન્ડરી ડિસ્પ્લે પર ફરજિયાત પ્રયોગાત્મક ડેસ્કટૉપ મોડ ચાલુ કરો"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"ફ્રીફોર્મ વિન્ડો ચાલુ કરો"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"ફ્રીફોર્મ વિન્ડો માટે સપોર્ટ મેળવવાની સુવિધા ચાલુ કરો."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"બીજા ડિસ્પ્લે પર ફ્રીફોર્મ વિન્ડો ચાલુ કરો"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"માત્ર સેકન્ડરી ડિસ્પ્લે પર ફ્રીફોર્મ વિન્ડો ચાલુ કરો."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"એકથી વધુ વિન્ડોમાં ફરીથી કદ ન બદલી શકવાનો વિકલ્પ ચાલુ કરો"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ફરીથી કદ ન બદલી શકે તેવી ઍપને એકથી વધુ વિન્ડોમાં દેખાવાની મંજૂરી આપે છે"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"ફરજિયાત ઘેરા મોડની સુવિધાને ઓવરરાઇડ કરો"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"ડેવલપરના 16KB વિકલ્પનો ઉપયોગ કરતા પહેલાં આ ડિવાઇસના ડેટા પાર્ટીશનને ext4માં રૂપાંતરિત કરવાની જરૂર છે. આ મોડમાં સૉફ્ટવેરની સંપૂર્ણતાની ગૅરંટી આપી શકાતી નથી, અને જ્યારે બૂટલોડર અનલૉક કરેલું હોય ત્યારે ફોન પર સ્ટોર કરેલો કોઈપણ ડેટા જોખમમાં હોઈ શકે છે. 16KB વિકલ્પને સક્રિય કરવાથી આ પછી વધુ એક વખત રીબૂટ કરવાની જરૂર પડશે. એકવાર તમે આ મોડમાં આવી ગયા પછી, એક જ વખત રીબૂટ કરીને તમે 4KB અને 16KB મોડ વચ્ચે આગળ અને પાછળ સ્વિચ કરી શકો છો. આ મોડમાં અમુક સુવિધાઓ બંધ કરવામાં આવશે, તેથી અમુક ઍપ્લિકેશન કામ કરશે નહીં. ડિવાઇસને પ્રોડક્શન મોડમાં પાછું લાવવા માટે, તમારે 4KB મોડ પર પાછા સ્વિચ કરવાની અને પછી બૂટલોડરને લૉક કરવાની જરૂર પડશે, જે ડિવાઇસને ફેક્ટરી રીસેટ કરે છે. ડિવાઇસ સફળતાપૂર્વક Androidમાં બૂટ થાય તે પછી, ડેવલપરના વિકલ્પોમાં OEM અનલૉક કરવાની સુવિધાને ચાલુ કરો. ડિવાઇસને વાઇપ કરવામાં આવશે અને કન્ફર્મેશન પછી ફાઇલસિસ્ટમને ext4માં બદલવામાં આવશે. આ પૂર્ણ થયા પછી, 16KB ફરીથી ચાલુ કરવા માટે કૃપા કરીને પાછા આવો."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"બધો ડેટા કાઢી નાખો"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ડેટા પાર્ટિશનને ext4 પર ફરીથી ફૉર્મેટ અને વાઇપ કરી શક્યા નહીં."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"બૂટલોડર અનલૉક કરવું આવશ્યક છે"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"ડેવલપરના 16KB વિકલ્પનો ઉપયોગ કરતા પહેલાં આ ડિવાઇસ દ્વારા બૂટલોડરને અનલૉક કરવાની જરૂર છે. આ મોડમાં સૉફ્ટવેરની સંપૂર્ણતાની ગૅરંટી આપી શકાતી નથી, અને જ્યારે બૂટલોડર અનલૉક કરેલું હોય ત્યારે ફોન પર સ્ટોર કરેલો કોઈપણ ડેટા જોખમમાં હોઈ શકે છે. 16KB મોડ સક્રિય કરતી વખતે વપરાશકર્તાનો તમામ ડેટા અને સેટિંગ વાઇપ થઈ જશે. એકવાર બૂટલોડર અનલૉક કરવામાં આવે, પછી 16KB વિકલ્પને સક્રિય કરવા માટે બે વખત રીબૂટ કરવાની જરૂર પડશે. એકવાર તમે આ મોડમાં આવી ગયા પછી, એક જ વખત રીબૂટ કરીને તમે 4KB અને 16KB મોડ વચ્ચે આગળ અને પાછળ સ્વિચ કરી શકો છો. આ મોડમાં અમુક સુવિધાઓ બંધ કરવામાં આવશે, તેથી અમુક ઍપ્લિકેશન કામ કરશે નહીં. ડિવાઇસને પ્રોડક્શન મોડમાં પાછું લાવવા માટે, તમારે 4KB મોડ પર પાછા સ્વિચ કરવાની જરૂર પડશે અને પછી OEM/બૂટલોડર ડિવાઇસને લૉક (જે ફેક્ટરી રીસેટ કરે છે) કરે છે. કૃપા કરીને બૂટલોડરને અનલૉક કરો અને ફરી પ્રયાસ કરો. તમે આ કેવી રીતે કરવું તે માટેની સૂચનાઓ <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> પર જોઈ શકો છો"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4KB પેજ-એગ્નોસ્ટિક મોડનો ઉપયોગ કરીને"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"તમે પેજ-એગ્નોસ્ટિક મોડના 4KB મોડમાં છો. આ મોડમાં સૉફ્ટવેરની સંપૂર્ણતાની ગૅરંટી આપી શકાતી નથી, અને જ્યારે બૂટલોડર અનલૉક કરેલું હોય ત્યારે ફોન પર સ્ટોર કરેલો કોઈપણ ડેટા જોખમમાં હોઈ શકે છે. આ મોડમાં અમુક સુવિધાઓ બંધ કરવામાં આવશે, તેથી અમુક ઍપ્લિકેશન કામ કરશે નહીં. પ્રોડક્શન મોડમાં ફરીથી દાખલ થવા માટે, તમારે ડિવાઇસના બૂટલોડરને લૉક કરવું આવશ્યક છે. વધુ વાંચવા ટૅપ કરો."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"તમે પેજ-એગ્નોસ્ટિક મોડના 4KB મોડમાં છો. આ મોડમાં સૉફ્ટવેરની સંપૂર્ણતાની ગૅરંટી આપી શકાતી નથી, અને જ્યારે બૂટલોડર અનલૉક કરેલું હોય ત્યારે ફોન પર સ્ટોર કરેલો કોઈપણ ડેટા જોખમમાં હોઈ શકે છે. આ મોડમાં અમુક સુવિધાઓ બંધ કરવામાં આવશે, તેથી અમુક ઍપ્લિકેશન કામ કરશે નહીં. પ્રોડક્શન મોડમાં ફરીથી દાખલ થવા માટે, તમારે ડિવાઇસના બૂટલોડરને લૉક કરવું આવશ્યક છે. આ ડિવાઇસને ફરીથી ફેક્ટરી રીસેટ કરશે અને તેને પ્રોડક્શન સેટિંગમાં રિસ્ટોર કરશે. ડિવાઇસ સફળતાપૂર્વક Androidમાં બૂટ થાય તે પછી, ડેવલપરના વિકલ્પોમાં OEM અનલૉક કરવાની સુવિધાને ચાલુ કરો. જો ડિવાઇસ Androidમાં બૂટ કરવામાં નિષ્ફળ જાય અથવા અસ્થિર હોય, તો <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> પરથી નવીનતમ ફેક્ટરી છબીઓ સાથે ડિવાઇસને ફરીથી ફ્લૅશ કરો અથવા <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>નો ઉપયોગ કરો અને \'ડિવાઇસ વાઇપ કરો\', \'બૂટલોડર લૉક કરો\' અને \'તમામ પાર્ટિશનને ફરજિયાત ફ્લૅશ કરો\' પસંદ કરો."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16KB પેજ-એગ્નોસ્ટિક મોડનો ઉપયોગ કરીને"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"તમે પેજ-એગ્નોસ્ટિક મોડના 16KB મોડમાં છો. આ મોડમાં સૉફ્ટવેરની સંપૂર્ણતાની ગૅરંટી આપી શકાતી નથી અને જ્યારે બૂટલોડર અનલૉક કરેલું હોય ત્યારે ફોનમાં સ્ટોર કરેલો કોઈપણ ડેટા જોખમમાં હોઈ શકે છે. આ મોડમાં અમુક સુવિધાઓ બંધ કરવામાં આવશે, તેથી અમુક ઍપ્લિકેશનો કામ ન કરે એવું બની શકે છે. પ્રોડક્શન મોડમાં ફરીથી દાખલ થવા માટે, તમારે 4KB મોડ પર પાછા સ્વિચ કરવું આવશ્યક છે અને પછી ડિવાઇસના બૂટલોડરને લૉક કરો. વધુ વાંચવા માટે ટૅપ કરો."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"તમે પેજ-એગ્નોસ્ટિક મોડના 16KB મોડમાં છો. આ મોડમાં સૉફ્ટવેરની સંપૂર્ણતાની ગૅરંટી આપી શકાતી નથી અને જ્યારે બૂટલોડર અનલૉક કરેલું હોય ત્યારે ફોનમાં સ્ટોર કરેલો કોઈપણ ડેટા જોખમમાં હોઈ શકે છે. આ મોડમાં અમુક સુવિધાઓ બંધ કરવામાં આવશે, તેથી અમુક ઍપ્લિકેશનો કામ ન કરે એવું બની શકે છે. પ્રોડક્શન મોડમાં ફરીથી દાખલ થવા માટે, તમારે 4KB મોડ પર પાછા સ્વિચ કરવું આવશ્યક છે અને પછી ડિવાઇસના બૂટલોડરને લૉક કરો. આ ડિવાઇસને ફરીથી ફેક્ટરી રીસેટ કરશે અને તેને પ્રોડક્શન સેટિંગમાં રિસ્ટોર કરશે. ડિવાઇસ સફળતાપૂર્વક Androidમાં બૂટ થાય તે પછી, ડેવલપરના વિકલ્પોમાં OEM અનલૉક કરવાના સેટિંગને બંધ કરો. જો ડિવાઇસ Android OSથી બૂટ થવાનું નિષ્ફળ રહે અથવા અસ્થિર હોય, તો ડિવાઇસને <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>ની નવીનતમ ફેક્ટરી છબીઓથી OS ફરીથી ફ્લૅશ કરો અથવા <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>નો ઉપયોગ કરો તેમજ \'ડિવાઇસનો ડેટા વાઇપ કરો\', \'બૂટલોડર લૉક કરો\' અને \'તમામ પાર્ટિશન ફરજિયાત રીતે ફલૅશ કરો\' પસંદ કરો."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB પેજ એગ્નોસ્ટિક મોડ"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"વધુ વાંચો"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"બગ રિપોર્ટ હૅન્ડલ કરનાર"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"જ્યારે તમારું ટૅબ્લેટ ડૉક કરેલું હોય, ત્યારે તમે તમારી સ્ક્રીન પર શું જોશો તે પસંદ કરો. જ્યારે સ્ક્રીનસેવરનો ઉપયોગ કરવામાં આવે, ત્યારે તમારું ડિવાઇસ વધુ ઊર્જાનો ઉપયોગ કરી શકે છે."</string>
<string name="customize_button_title" msgid="1110284655990203359">"કસ્ટમાઇઝ કરો"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>ને કસ્ટમાઇઝ કરો"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ફ્રીફોર્મ સપોર્ટ ચાલુ કરવા માટે રીબૂટ કરવું જરૂરી છે."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ગૌણ ડિસ્પ્લે પર ડેસ્કટૉપ મોડ લાગુ થવાની ફરજ પાડવા માટે રીબૂટ કરવું જરૂરી છે."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"જૂની ફ્રીફોર્મ વિન્ડો માટે સપોર્ટ મેળવવાની સુવિધા ચાલુ કરવા રીબૂટ કરવું જરૂરી છે."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"ફ્રીફોર્મ વિન્ડો માટે સપોર્ટ મેળવવાની સુવિધા બદલવા રીબૂટ કરવું જરૂરી છે."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"સેકન્ડરી ડિસ્પ્લે પર ફ્રીફોર્મ વિન્ડો ફરજિયાત રીતે ચાલુ કરવા માટે રીબૂટ કરવું જરૂરી છે."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"હમણાં રીબૂટ કરો"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"પછીથી રીબૂટ કરો"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"સ્પેશલ ઑડિયો"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 81da7ea..6bf9210 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"चेहरा और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"चेहरा, फ़िंगरप्रिंट, और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"चेहरा, फ़िंगरप्रिंट, और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"बायोमेट्रिक्स इस्तेमाल करना ज़रूरी है, क्योंकि पहचान की पुष्टि करने की सेटिंग चालू है"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"ऐप्लिकेशन इंस्टॉल करें"</b>\n"ऐसे ऐप्लिकेशन इंस्टॉल करें जिन्हें आपको अपने स्पेस में निजी रखना है"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"ध्यान रखें"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"स्पेस को लॉक करने से, ऐप्लिकेशन बंद हो जाते हैं"</b>\n"स्पेस को लॉक करने से, स्पेस में मौजूद ऐप्लिकेशन बंद हो जाते हैं, जिस वजह से आपको ऐप्लिकेशन से सूचनाएं नहीं मिलती हैं"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"प्राइवेट स्पेस का इस्तेमाल, बैकग्राउंड में चलाए जाने वाले या ज़रूरी सूचनाएं भेजने वाले ऐप्लिकेशन के लिए नहीं किया जा सकता. जैसे, चिकित्सा से जुड़े ऐप्लिकेशन. ऐसा इसलिए है, क्योंकि स्पेस के लॉक होने पर सूचनाएं भेजने की सुविधा और बैकग्राउंड में चल रही गतिविधि बंद हो जाती है.\n\nप्राइवेट स्पेस के लॉक होने पर, उसमें मौजूद ऐप्लिकेशन, \'अनुमतियों को मैनेज करें\' सेक्शन, प्राइवसी डैशबोर्ड, और अन्य सेटिंग में नहीं दिखेंगे.\n\nआपके प्राइवेट स्पेस को किसी नए डिवाइस में ट्रांसफ़र नहीं किया जा सकता. किसी दूसरे डिवाइस में इस्तेमाल करने के लिए, आपको दूसरा प्राइवेट स्पेस सेट अप करना होगा.\n\nआपके डिवाइस को कंप्यूटर से कनेक्ट करने या डिवाइस में, नुकसान पहुंचाने वाले ऐप्लिकेशन इंस्टॉल करने वाला व्यक्ति आपके प्राइवेट स्पेस को ऐक्सेस कर सकता है."</string>
- <string name="private_space_settings_footer_text" msgid="3742468470394835356">"प्राइवेट स्पेस का इस्तेमाल, बैकग्राउंड में चलाए जाने वाले या ज़रूरी सूचनाएं भेजने वाले ऐप्लिकेशन के लिए नहीं किया जा सकता. जैसे, चिकित्सा से जुड़े ऐप्लिकेशन. ऐसा इसलिए है, क्योंकि स्पेस के लॉक होने पर सूचनाएं भेजने की सुविधा और बैकग्राउंड में चल रही गतिविधि बंद हो जाती है.\n\nप्राइवेट स्पेस के लॉक होने पर, उसमें मौजूद ऐप्लिकेशन, \'अनुमतियों को मैनेज करें\' सेक्शन, प्राइवसी डैशबोर्ड, और अन्य सेटिंग में नहीं दिखेंगे.\n\nआपके प्राइवेट स्पेस को किसी नए डिवाइस पर नहीं ले जाया जा सकता. किसी दूसरे डिवाइस में इस्तेमाल करने के लिए, आपको दूसरा स्पेस सेट अप करना होगा.\n\nआपके डिवाइस को कंप्यूटर से कनेक्ट करने या डिवाइस में, नुकसान पहुंचाने वाले ऐप्लिकेशन इंस्टॉल करने वाला व्यक्ति आपके प्राइवेट स्पेस को ऐक्सेस कर सकता है."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"प्राइवेट स्पेस उन ऐप्लिकेशन के लिए सही नहीं है जो बैकग्राउंड में गतिविधियां जारी रखते हैं या ज़रूरी सूचनाएं भेजते हैं, जैसे- चिकित्सा से जुड़े ऐप्लिकेशन. ऐसा इसलिए, क्योंकि स्पेस के लॉक होने पर सूचनाएं भेजने की सुविधा और बैकग्राउंड में चल रही गतिविधियां भी बंद हो जाती हैं.\n\nप्राइवेट स्पेस के लॉक होने पर, उसमें मौजूद ऐप्लिकेशन \'अनुमतियों को मैनेज करें\' सेक्शन, प्राइवसी डैशबोर्ड, और अन्य सेटिंग में नहीं दिखेंगे.\n\nआपका प्राइवेट स्पेस किसी नए डिवाइस में ट्रांसफ़र नहीं किया जा सकता. किसी दूसरे डिवाइस में इसका इस्तेमाल करने के लिए, आपको दूसरा प्राइवेट स्पेस सेट अप करना होगा.\n\nकोई भी ऐसा व्यक्ति जो आपके डिवाइस को कंप्यूटर से कनेक्ट कर सकता है या आपके डिवाइस में नुकसान पहुंचाने वाले ऐप्लिकेशन इंस्टॉल कर सकता है, वह आपके प्राइवेट स्पेस को ऐक्सेस कर सकता है."</string>
+ <string name="private_space_settings_footer_text" msgid="3742468470394835356">"प्राइवेट स्पेस उन ऐप्लिकेशन के लिए सही नहीं है जो बैकग्राउंड में गतिविधियां जारी रखते हैं या ज़रूरी सूचनाएं भेजते हैं, जैसे- चिकित्सा से जुड़े ऐप्लिकेशन. ऐसा इसलिए, क्योंकि स्पेस के लॉक होने पर सूचनाएं भेजने की सुविधा और बैकग्राउंड में चल रही गतिविधियां भी बंद हो जाती हैं.\n\nप्राइवेट स्पेस के लॉक होने पर, उसमें मौजूद ऐप्लिकेशन \'अनुमतियों को मैनेज करें\' सेक्शन, प्राइवसी डैशबोर्ड, और अन्य सेटिंग में नहीं दिखेंगे.\n\nआपके प्राइवेट स्पेस को किसी नए डिवाइस पर नहीं ले जाया जा सकता. किसी दूसरे डिवाइस में इसका इस्तेमाल करने के लिए, आपको दूसरा स्पेस सेट अप करना होगा.\n\nकोई भी ऐसा व्यक्ति जो आपके डिवाइस को कंप्यूटर से कनेक्ट कर सकता है या आपके डिवाइस में नुकसान पहुंचाने वाले ऐप्लिकेशन इंस्टॉल कर सकता है, वह आपके प्राइवेट स्पेस को ऐक्सेस कर सकता है."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"प्राइवेट स्पेस के बारे में ज़्यादा जानें"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"इसमें कुछ समय लगेगा"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"प्राइवेट स्पेस सेट अप किया जा रहा है…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"अन्य विकल्प"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"सुलभता सुविधा"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"सामान्य कीबोर्ड"</string>
- <string name="show_ime" msgid="4334255501724746849">"ऑन-स्क्रीन कीबोर्ड का इस्तेमाल करें"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"इसे सामान्य कीबोर्ड चालू रहने के दौरान भी स्क्रीन पर दिखाएं"</string>
<string name="bounce_keys" msgid="7419450970351743904">"बाउंस बटन"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"एक ही कुंजी को <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> मि॰से॰ के अंदर बार-बार दबाने पर, कीबोर्ड उसे अनदेखा कर देता है"</string>
<string name="slow_keys" msgid="2891452895499690837">"स्लो बटन"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"कोई मोड बनाएं"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"कस्टम मोड"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"रुकावटों को कम करें"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'परेशान न करें\' चालू करें"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"अलार्म और मीडिया की आवाज़ें \'परेशान न करें\' मोड को बायपास कर सकती हैं"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"शेड्यूल सेट करें"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"शेड्यूल"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> घंटे <xliff:g id="MINUTES">%2$d</xliff:g> मिनट"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"अपने-आप चालू करें"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"शेड्यूल"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"कुछ खास समय पर फ़ोन साइलेंट करें"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"\'परेशान न करें\' सुविधा के नियम सेट करें"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"सूचना खोलें"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"सूचनाएं स्नूज़ करने की अनुमति दें"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ऐप्लिकेशन आइकॉन पर सूचनाएं बताने वाला डॉट"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"सूचनाओं के बंडल"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"बबल्स"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"बबल्स"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"इस बातचीत को बबल के रूप में दिखाएं"</string>
@@ -3561,7 +3562,7 @@
<string name="bubble_app_setting_bubble_conversation" msgid="1461981680982964285">"इस बातचीत के लिए बबल्स चालू करें"</string>
<string name="swipe_direction_ltr" msgid="5137180130142633085">"खारिज करने के लिए दाईं ओर स्वाइप करें और मेन्यू दिखाने के लिए बाईं ओर"</string>
<string name="swipe_direction_rtl" msgid="1707391213940663992">"खारिज करने के लिए बाईं ओर स्वाइप करें और मेन्यू दिखाने के लिए दाईं ओर"</string>
- <string name="silent_notifications_status_bar" msgid="6113307620588767516">"साइलेंट मोड पर सेट की गई सूचनाएं, स्टेटस बार में न दिखाएं"</string>
+ <string name="silent_notifications_status_bar" msgid="6113307620588767516">"साइलेंट मोड में मिली सूचनाएं, स्टेटस बार में न दिखाएं"</string>
<string name="notification_pulse_title" msgid="8013178454646671529">"ब्लिंक लाइट"</string>
<string name="lock_screen_notifications_title" msgid="2876323153692406203">"निजता सेटिंग"</string>
<string name="lockscreen_bypass_title" msgid="6519964196744088573">"पिछली खुली स्क्रीन पर जाएं"</string>
@@ -3573,7 +3574,7 @@
<string name="lock_screen_notifs_title" msgid="3412042692317304449">"लॉक स्क्रीन पर दिखने वाली सूचनाएं"</string>
<string name="lock_screen_notifs_show_all_summary" msgid="4226586018375762117">"डिफ़ॉल्ट और साइलेंट, दोनों मोड वाली सूचनाएं और बातचीत दिखाएं"</string>
<string name="lock_screen_notifs_show_all" msgid="1300418674456749664">"बातचीत, डिफ़ॉल्ट, और साइलेंट मोड पर सेट की गई सूचनाएं दिखाएं"</string>
- <string name="lock_screen_notifs_show_alerting" msgid="6584682657382684566">"साइलेंट मोड पर सेट की गई सूचनाएं और बातचीत छिपाएं"</string>
+ <string name="lock_screen_notifs_show_alerting" msgid="6584682657382684566">"साइलेंट मोड में मिली सूचनाएं और बातचीत छिपाएं"</string>
<string name="lock_screen_notifs_show_none" msgid="1941044980403067101">"कोई भी सूचना न दिखाएं"</string>
<string name="lock_screen_notifs_redact" msgid="9024158855454642296">"संवेदनशील सूचनाएं"</string>
<string name="lock_screen_notifs_redact_summary" msgid="1395483766035470612">"स्क्रीन लॉक रहने पर भी संवेदनशील कॉन्टेंट दिखाएं"</string>
@@ -3645,10 +3646,10 @@
<string name="notification_listener_security_warning_title" msgid="5791700876622858363">"क्या आपको <xliff:g id="SERVICE">%1$s</xliff:g> को सूचना ऐक्सेस करने की अनुमति देनी है?"</string>
<string name="notification_listener_security_warning_summary" msgid="1131986567509818121">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> ऐप्लिकेशन, सभी सूचनाओं को पढ़ पाएगा. इसमें आपकी निजी जानकारी शामिल है. जैसे, संपर्कों के नाम, फ़ोटो, और आपको मिलने वाले मैसेज. यह ऐप्लिकेशन, सूचनाओं के साथ दिखने वाले बटन से कार्रवाई कर सकता है या सूचनाओं को स्नूज़/खारिज भी कर पाएगा. यह फ़ोन कॉल का जवाब भी दे पाएगा. \n\nइससे यह ऐप्लिकेशन, \'परेशान न करें\' मोड चालू या बंद कर पाएगा और इससे जुड़ी सेटिंग भी बदल पाएगा."</string>
<string name="nls_warning_prompt" msgid="1486887096703743841">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> ऐप्लिकेशन ये काम कर पाएगा:"</string>
- <string name="nls_feature_read_title" msgid="7629713268744220437">"आपकी सूचनाएं पढ़ना"</string>
- <string name="nls_feature_read_summary" msgid="1064698238110273593">"यह ऐप्लिकेशन आपकी सूचनाओं को पढ़ सकता है. इनमें आपकी निजी जानकारी, जैसे कि संपर्कों के नाम, आपको मिलने वाले मैसेज, और फ़ोटो शामिल हैं."</string>
+ <string name="nls_feature_read_title" msgid="7629713268744220437">"आपकी सूचनाएं ऐक्सेस करना"</string>
+ <string name="nls_feature_read_summary" msgid="1064698238110273593">"यह ऐप्लिकेशन आपकी सूचनाओं को ऐक्सेस कर सकता है. साथ ही, आपके संपर्क, मैसेज, और फ़ोटो जैसी निजी जानकारी को भी ऐक्सेस कर सकता है."</string>
<string name="nls_feature_reply_title" msgid="7925455553821362039">"मैसेज का जवाब देना"</string>
- <string name="nls_feature_reply_summary" msgid="4492543411395565556">"यह ऐप्लिकेशन मैसेज के जवाब दे सकता है और सूचनाओं में मौजूद बटन से कार्रवाई कर सकती है. जैसे, सूचनाओं को स्नूज़ (थोड़ी देर के लिए बंद करना) या उन्हें खारिज करना और फ़ोन कॉल का जवाब देना."</string>
+ <string name="nls_feature_reply_summary" msgid="4492543411395565556">"यह ऐप्लिकेशन मैसेज के जवाब दे सकता है. साथ ही, सूचनाओं में दिखने वाले बटन से कार्रवाइयां भी कर सकता है, जैसे- सूचनाओं को स्नूज़ (थोड़ी देर के लिए बंद) या खारिज करना. यह फ़ोन कॉल के जवाब भी दे सकता है."</string>
<string name="nls_feature_settings_title" msgid="8208164329853194414">"सेटिंग में बदलाव करना"</string>
<string name="nls_feature_settings_summary" msgid="3770028705648985689">"यह ऐप्लिकेशन \'परेशान न करें\' मोड को चालू या बंद कर सकता है और इससे जुड़ी सेटिंग में बदलाव कर सकता है."</string>
<string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"अगर <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> के लिए सूचना का ऐक्सेस बंद किया जाता है, तो \'परेशान न करें\' सेवा का ऐक्सेस भी बंद हो सकता है."</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"सभी"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ऐप्लिकेशन को ओवरराइड करने की मंज़ूरी दें"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ऐप्लिकेशन जो \'परेशान न करें\' मोड को बायपास कर सकते हैं"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"और ऐप्लिकेशन चुनें"</string>
@@ -4080,8 +4083,8 @@
<string name="app_list_preference_none" msgid="1635406344616653756">"कोई नहीं"</string>
<string name="work_profile_usage_access_warning" msgid="3477719910927319122">"इस ऐप के इस्तेमाल का ऐक्सेस बंद करने के बाद भी आपका एडमिन आपकी वर्क प्रोफ़ाइल के ऐप का डेटा खर्च ट्रैक कर सकते हैं"</string>
<string name="draw_overlay" msgid="7902083260500573027">"दूसरे ऐप्लिकेशन के ऊपर दिखाएं"</string>
- <string name="system_alert_window_settings" msgid="6458633954424862521">"दूसरे ऐप्लिकेशन के ऊपर दिखाने की अनुमति"</string>
- <string name="permit_draw_overlay" msgid="4468994037192804075">"दूसरे ऐप्लिकेशन के ऊपर दिखाने की अनुमति दें"</string>
+ <string name="system_alert_window_settings" msgid="6458633954424862521">"दूसरे ऐप्लिकेशन के ऊपर दिखाएं"</string>
+ <string name="permit_draw_overlay" msgid="4468994037192804075">"दूसरे ऐप्लिकेशन के ऊपर दिखने की अनुमति दें"</string>
<string name="allow_overlay_description" msgid="1607235723669496298">"इस ऐप्लिकेशन को, उन सभी ऐप्लिकेशन के ऊपर दिखने की अनुमति दें जो इस्तेमाल में हैं. यह ऐप्लिकेशन देख पाएगा कि आपने कहां टैप किया है. इसके अलावा, स्क्रीन पर दिखने वाली चीज़ों को भी बदल पाएगा."</string>
<string name="media_routing_control_title" msgid="6402800638960066807">"मीडिया आउटपुट बदलने की अनुमति"</string>
<string name="allow_media_routing_control" msgid="4907036637509360616">"ऐप को मीडिया आउटपुट बदलने की अनुमति दें"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"चार्ज करने वाला डिब्बा"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"बैटरी"</string>
<string name="settings_panel_title" msgid="346363079938069215">"सेटिंग पैनल"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"डेस्कटॉप मोड चालू करें"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"दूसरी स्क्रीन पर डेस्कटॉप मोड आज़माने की सुविधा चालू करें"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"फ़्रीफ़ॉर्म विंडो मोड चालू करें"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"फ़्रीफ़ॉर्म विंडो मोड के लिए सेटिंग चालू करें."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"सेकंडरी डिसप्ले पर फ़्रीफ़ॉर्म विंडो मोड चालू करें"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"सिर्फ़ सेकंडरी डिसप्ले पर फ़्रीफ़ॉर्म विंडो चालू करें."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"मल्टी-विंडो में विंडो का साइज़ न बदलने का विकल्प चालू करें"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"साइज़ न बदलने वाले ऐप्लिकेशन को मल्टी-विंडो (एक से ज़्यादा ऐप्लिकेशन, एक साथ) में दिखाने की अनुमति दें"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"गहरे रंग वाली थीम को तुरंत लागू करने की सुविधा ओवरराइड करें"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16 केबी मोड का इस्तेमाल करने से पहले, इस डिवाइस के डेटा पार्टिशन को ext4 में बदलना होगा. इस मोड में सॉफ़्टवेयर के रखरखाव की गारंटी नहीं है. साथ ही, बूटलोडर अनलॉक रहने पर आपके फ़ोन में सेव डेटा की सुरक्षा खतरे में पड़ सकती है. अगर आपने 16 केबी मोड चालू किया है, तो इसके बाद डिवाइस को एक और बार चालू करना होगा. इस मोड में आ जाने के बाद, डिवाइस को फिर से चालू करके 4 केबी और 16 केबी मोड के बीच स्विच किया जा सकता है. इन मोड में कुछ सुविधाएं बंद हो जाएंगी. इसलिए, हो सकता है कि कुछ ऐप्लिकेशन काम न करें. डिवाइस को प्रोडक्शन मोड में वापस लाने के लिए, आपको फिर से 4 केबी मोड पर स्विच करना होगा और बूटलोडर लॉक करना होगा. ऐसा करने पर, डिवाइस फ़ैक्ट्री रीसेट हो जाता है. डिवाइस का Android ऑपरेटिंग सिस्टम चालू हो जाने के बाद, \'डेवलपर के लिए सेटिंग और टूल\' में जाकर ओईएम से अनलॉक करने की सेटिंग बंद करें. इससे डिवाइस का डेटा वाइप हो जाएगा और पुष्टि करने के बाद, फ़ाइलसिस्टम ext4 में बदल दिया जाएगा. इस प्रक्रिया के बाद, कृपया फिर से 16 केबी मोड को चालू करें."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"डिवाइस का सारा डेटा हमेशा के लिए मिटाएं"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"डेटा के हिस्से को ext4 में फिर से फ़ॉर्मैट नहीं किया जा सका, न ही इसे वाइप किया जा सका."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"बूटलोडर को अनलॉक करना ज़रूरी है"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16 केबी मोड इस्तेमाल करने के लिए, इस डिवाइस के बूटलोडर को अनलॉक करना ज़रूरी है. इस मोड में सॉफ़्टवेयर के रखरखाव की गारंटी नहीं है. साथ ही, बूटलोडर अनलॉक रहने पर आपके फ़ोन में सेव डेटा की सुरक्षा खतरे में पड़ सकती है. अगर 16 केबी मोड चालू किया जाता है, तो उपयोगकर्ता का पूरा डेटा और सभी सेटिंग वाइप हो जाती हैं. बूटलोडर अनलॉक करने के बाद, 16 केबी मोड चालू करने के लिए डिवाइस को दो बार फिर से चालू करने की ज़रूरत होती है. इस मोड के चालू हो जाने के बाद, डिवाइस को फिर से चालू करके 4 केबी और 16 केबी मोड के बीच स्विच किया जा सकता है. इन मोड में कुछ सुविधाएं बंद हो जाएंगी. इसलिए, हो सकता है कि कुछ ऐप्लिकेशन काम न करें. डिवाइस को प्रोडक्शन मोड में वापस लाने के लिए, आपको 4 केबी मोड पर स्विच करना होगा. इसके बाद, ओईएम/बूटलोडर लॉक करना होगा. इससे डिवाइस फ़ैक्ट्री रीसेट हो जाएगा. कृपया बूटलोडर अनलॉक करें और फिर से कोशिश करें. बूटलोडर अनलॉक करने के निर्देश यहां देखे जा सकते हैं: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4 केबी पेज-एग्नोस्टिक मोड का इस्तेमाल किया जा रहा है"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"आप 4 केबी पेज साइज़ के साथ काम करने वाले मोड (पेज-ऐग्नोस्टिक मोड) में है. इस मोड में सॉफ़्टवेयर के रखरखाव की गारंटी नहीं है. साथ ही, बूटलोडर अनलॉक रहने पर आपके फ़ोन में सेव डेटा की सुरक्षा खतरे में पड़ सकती है. इन मोड में कुछ सुविधाएं बंद हो जाएंगी. इसलिए, हो सकता है कि कुछ ऐप्लिकेशन काम न करें. इसे वापस प्रोडक्शन मोड पर सेट करने के लिए, आपको डिवाइस का बूटलोडर लॉक करना होगा. ज़्यादा पढ़ने के लिए टैप करें."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"आप 4 केबी पेज साइज़ के साथ काम करने वाले मोड (पेज-ऐग्नोस्टिक मोड) में है. इस मोड में सॉफ़्टवेयर के रखरखाव की गारंटी नहीं है. साथ ही, बूटलोडर अनलॉक रहने पर आपके फ़ोन में सेव डेटा की सुरक्षा खतरे में पड़ सकती है. इन मोड में कुछ सुविधाएं बंद हो जाएंगी. इसलिए, हो सकता है कि कुछ ऐप्लिकेशन काम न करें. प्रोडक्शन मोड में वापस जाने के लिए, आपको डिवाइस का बूटलोडर लॉक करना होगा. ऐसा करने पर, डिवाइस फिर से फ़ैक्ट्री रीसेट हो जाएगा और इसकी प्रोडक्शन सेटिंग पहले जैसी हो जाएंगी. डिवाइस का Android ऑपरेटिंग सिस्टम चालू हो जाने के बाद, \'डेवलपर के लिए सेटिंग और टूल\' में जाकर ओईएम से अनलॉक करने की सेटिंग बंद करें. अगर Android ऑपरेटिंग सिस्टम चालू नहीं होता है या ठीक से काम नहीं करता है, तो <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> पर मौजूद नई फ़ैक्ट्री इमेज की मदद से डिवाइस को फिर से फ़्लैश करें या <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> का इस्तेमाल करें. इसके बाद, \'डिवाइस वाइप करें\', \'बूटलोडर को लॉक करें\', और \'सभी हिस्सों को ज़बरदस्ती फ़्लैश करें\' को चुनें."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16 केबी पेज-ऐग्नोस्टिक मोड का इस्तेमाल किया जा रहा है"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"आप पेज-ऐग्नोस्टिक मोड के 16 केबी मोड में हैं. इस मोड में, सॉफ़्टवेयर के रखरखाव की गारंटी नहीं है. साथ ही, बूटलोडर अनलॉक होने के दौरान आपके फ़ोन में सेव डेटा की सुरक्षा खतरे में हो सकती है. इन मोड में, कुछ सुविधाएं बंद हो जाएंगी. इसलिए, ऐसा हो सकता है कि कुछ ऐप्लिकेशन काम न करें. प्रोडक्शन मोड पर वापस जाने के लिए, आपको 4 केबी मोड पर फिर से स्विच करना होगा. इसके बाद, आपको डिवाइस का बूटलोडर लॉक करना होगा. ज़्यादा पढ़ने के लिए टैप करें."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"आप पेज-ऐग्नोस्टिक मोड के 16 केबी मोड में हैं. इस मोड में, सॉफ़्टवेयर के रखरखाव की गारंटी नहीं है. साथ ही, बूटलोडर अनलॉक होने के दौरान आपके फ़ोन में सेव डेटा की सुरक्षा खतरे में हो सकती है. इन मोड में, कुछ सुविधाएं बंद हो जाएंगी. इसलिए, ऐसा हो सकता है कि कुछ ऐप्लिकेशन काम न करें. प्रोडक्शन मोड पर वापस जाने के लिए, आपको 4 केबी मोड पर फिर से स्विच करना होगा. इसके बाद, आपको डिवाइस का बूटलोडर लॉक करना होगा. ऐसा करने पर, डिवाइस फिर से फ़ैक्ट्री रीसेट हो जाएगा और इसकी प्रोडक्शन सेटिंग पहले जैसी हो जाएंगी. डिवाइस के Android में बूट हो जाने के बाद, \'डेवलपर के लिए सेटिंग और टूल\' में जाकर ओईएम से अनलॉक करने की सेटिंग बंद करें. अगर डिवाइस Android में बूट नहीं होता या ठीक से काम नहीं करता, तो <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> पर जाकर नई फ़ैक्ट्री इमेज का इस्तेमाल करके डिवाइस को फिर से फ़्लैश करें या <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> पर दिए गए टूल का इस्तेमाल करें. इसके बाद, \'डिवाइस वाइप करें\', \'बूटलोडर को लॉक करें\', और \'सभी हिस्से ज़बरदस्ती फ़्लैश करें\' को चुनें."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 केबी पेज-एग्नोस्टिक मोड"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"ज़्यादा पढ़ें"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"गड़बड़ी की रिपोर्ट हैंडल करने वाला"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"चुनें कि डॉक से टैबलेट के जुड़े होने के दौरान, आपको स्क्रीन पर क्या दिखे. स्क्रीन सेवर का इस्तेमाल करने पर, आपके डिवाइस की बैटरी ज़्यादा खर्च हो सकती है."</string>
<string name="customize_button_title" msgid="1110284655990203359">"मनमुताबिक बनाएं"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> को पसंद के मुताबिक बनाएं"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"फ़्रीफ़ॉर्म सहायता मोड को चालू करने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"दूसरे डिसप्ले पर डेस्कटॉप मोड को ज़बरदस्ती चलाने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"फ़्रीफ़ॉर्म विंडो वाला लेगसी मोड चालू करने के लिए, डिवाइस को फिर चालू करना होगा."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"फ़्रीफ़ॉर्म विंडो मोड की सेटिंग बदलने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"सेकंडरी डिसप्ले पर फ़्रीफ़ॉर्म विंडो मोड ज़बरदस्ती चालू करने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"अभी रीबूट (फिर से चालू) करें"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"बाद में रीबूट (फिर से चालू) करें"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"स्पेशल ऑडियो"</string>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index 0721307..ce1770d 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -364,8 +364,8 @@
<item msgid="6922258575853746220">"Pokret"</item>
</string-array>
<string-array name="accessibility_button_size_selector_titles">
- <item msgid="7482952318152486459">"Malen"</item>
- <item msgid="1666628329913333563">"Velik"</item>
+ <item msgid="7482952318152486459">"Maleno"</item>
+ <item msgid="1666628329913333563">"Veliko"</item>
</string-array>
<string-array name="vpn_proxy_settings">
<item msgid="7165538292837266997">"Nijedan"</item>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 8ad47b4..adcea4a 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -77,7 +77,7 @@
<string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Postavke slušnih pomagala"</string>
<string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Prečac, kompatibilnost sa slušnim pomagalima"</string>
<string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Unaprijed definirana postavka"</string>
- <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Nema definiranih postavki koje je definirao vaš audiolog"</string>
+ <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Nema zadanih postavki koje je definirao vaš audiolog"</string>
<string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Ažuriranje unaprijed definiranih postavki nije uspjelo"</string>
<string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audioizlaz"</string>
<string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"O audioizlazu"</string>
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"To je potrebno jer je uključena provjera identiteta"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opcije"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Pristupačnost"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fizička tipkovnica"</string>
- <string name="show_ime" msgid="4334255501724746849">"Koristi tipkovnicu na zaslonu"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Zadržava se na zaslonu dok je fizička tipkovnica aktivna"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Slučajni pritisci tipki"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Tipkovnica zanemaruje brzo ponovljene pritiske iste tipke unutar <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Spore tipke"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ipak nastavi"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Odustani"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Postavke povećavanja"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Premjestite povećalo jednim prstom"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Povlačite prstom da biste se kretali zaslonom"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Pomičite područje povećanja jednim prstom."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Pomičite područje povećanja dvama prstima."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nije dostupno kad se povećava samo dio zaslona"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Dodirnite gumb za zumiranje"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Brzo povećajte zaslon da bi se povećao prikaz sadržaja"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Da biste povećali prikaz:</b><br/> {0,number,integer}. Upotrijebite prečac da biste pokrenuli povećavanje.<br/> {1,number,integer}. Dodirnite zaslon.<br/> {2,number,integer}. Povlačite dva prsta da biste se pomicali po zaslonu.<br/> {3,number,integer}. Spojite dva prsta da biste prilagodili povećanje.<br/> {4,number,integer}. Upotrijebite prečac da biste zaustavili povećavanje.<br/><br/> <b>Da biste privremeno povećali prikaz:</b><br/> {0,number,integer}. Provjerite je li odabrano povećavanje cijelog zaslona.<br/> {1,number,integer}. Upotrijebite prečac da biste pokrenuli povećavanje.<br/> {2,number,integer}. Dodirnite i zadržite bilo gdje na zaslonu.<br/> {3,number,integer}. Povlačite prst da biste se pomicali po zaslonu.<br/> {4,number,integer}. Podignite prst da biste zaustavili povećavanje."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Da biste povećali prikaz:</b><br/> {0,number,integer}. Upotrijebite prečac da biste pokrenuli povećavanje.<br/> {1,number,integer}. Dodirnite zaslon.<br/> {2,number,integer}. Povlačite dva prsta da biste se pomicali po zaslonu.<br/> {3,number,integer}. Spojite dva prsta da biste prilagodili povećanje.<br/> {4,number,integer}. Uz pomoć prečaca zaustavite povećavanje<br/><br/> Možete privremeno povećati itd."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Da biste povećali prikaz:</b><br/> {0,number,integer}. Upotrijebite prečac da biste pokrenuli povećavanje.<br/> {1,number,integer}. Dodirnite zaslon.<br/> {2,number,integer}. Povucite jednim prstom ili dvama prstima oko zaslona<br/> {3,number,integer}. Spojite dva prsta da biste prilagodili povećanje.<br/> {4,number,integer}. Uz pomoć prečaca zaustavite povećavanje<br/><br/> Možete privremeno povećati itd."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kad je povećanje uključeno, možete povećati prikaz na zaslonu.\n\n"<b>"Da biste zumirali"</b>", pokrenite povećanje, a zatim dodirnite bilo gdje na zaslonu.\n"<ul><li>"Povlačite s dva prsta ili više njih da biste se pomicali."</li>\n<li>"Spojite dva prsta ili više njih da biste prilagodili zumiranje."</li></ul>\n\n<b>"Da biste nešto privremeno zumirali"</b>", pokrenite povećanje, a zatim dodirnite bilo gdje na zaslonu i zadržite pritisak.\n"<ul><li>"Povlačite prstom da biste se kretali zaslonom."</li>\n<li>"Podignite prst da biste smanjili prikaz."</li></ul>\n\n"Tipkovnica i navigacijska traka ne mogu se povećati."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Stranica <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> od <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Prečac gumba za pristupačnost"</string>
@@ -2237,8 +2232,8 @@
<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>
- <string name="accessibility_button_fade_title" msgid="8081993897680588829">"Blijedi kad se ne koristi"</string>
- <string name="accessibility_button_fade_summary" msgid="7865950833524973709">"Nakon nekoliko sekundi blijedi kako biste lakše mogli vidjeti zaslon"</string>
+ <string name="accessibility_button_fade_title" msgid="8081993897680588829">"Izblijedi kad se ne koristi"</string>
+ <string name="accessibility_button_fade_summary" msgid="7865950833524973709">"Nakon nekoliko sekundi blijedi kako biste lakše vidjeli ono što je na zaslonu"</string>
<string name="accessibility_button_opacity_title" msgid="4727355657530362289">"Prozirnost kad se ne koristi"</string>
<string name="accessibility_button_low_label" msgid="4193015407828927741">"Prozirno"</string>
<string name="accessibility_button_high_label" msgid="9138077512008190896">"Neprozirno"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Izrada načina"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Prilagođeno"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ograničavanje prekida"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Uključite opciju Ne uznemiravaj."</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Zvukovi alarma i medija mogu prekidati"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Postavite raspored"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Raspored"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Uključi automatski"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Raspored"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Utišaj telefon u određeno vrijeme"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Postavite pravila za način Ne uznemiravaj"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"otvaranje obavijesti"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Dopusti odgodu obavijesti"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Točka obavijesti na ikoni aplikacije"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Paketi obavijesti"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Oblačići"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Oblačići"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Prikaži ovaj razgovor u oblačiću"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Sve"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Dopusti aplikacijama da nadjačaju"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije koje mogu prekidati"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Odaberite više aplikacija"</string>
@@ -4347,7 +4346,7 @@
<string name="system_navigation_title" msgid="4890381153527184636">"Način navigacije"</string>
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Navigacija pomoću dva gumba"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Da biste promijenili aplikaciju, prijeđite prstom prema gore na početnom zaslonu. Da biste vidjeli sve aplikacije, ponovo prijeđite prstom prema gore. Da biste se vratili, dodirnite gumb Natrag."</string>
- <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Sigurnost i hitni slučajevi"</string>
+ <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Osobna sigurnost i hitni slučajevi"</string>
<string name="emergency_dashboard_summary" msgid="401033951074039302">"SOS poziv, zdravstveni podaci, upozorenja"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Navigacija pokretima"</string>
<string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"Da biste otvorili početni zaslon, prijeđite prstom od dna zaslona prema gore. Da biste promijenili aplikaciju, prijeđite prstom od dna prema gore, zadržite i otpustite. Da biste se vratili, prijeđite prstom od lijevog ili desnog ruba."</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Futrola"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterija"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Ploča postavki"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Nametni način rada na računalu"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Nameće eksperimentalni stolni način rada na sekundarnim zaslonima"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Omogući prozore slobodnog oblika"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Omogućite podršku za prozore slobodnog oblika."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Omogući prikaz u prozorima slobodnog oblika"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Omogućite prikaz u prozorima slobodnog oblika samo na sekundarnom zaslonu."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Omogući aplikacije nepromjenjive veličine u više prozora"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Omogućuje prikaz aplikacija nepromjenjive veličine u više prozora"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Nadjačaj nametanje tamne teme"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Podatkovna particija ovog uređaja treba se konvertirati u ext4 prije upotrebe opcije za razvojne programere od 16 KB. U ovom se načinu ne može zajamčiti integritet softvera, a svi podaci pohranjeni na telefonu mogu biti ugroženi dok je pokretač operativnog sustava otključan. Za aktiviranje opcije od 16 KB bit će potrebno još jedno ponovno pokretanje nakon konvertiranja podatkovne particije uređaja. Nakon što prijeđete na ovaj način, možete se prebacivati između načina od 4 KB i 16 KB uz jedno ponovno pokretanje. Neke će značajke biti onemogućene u tim načinima, pa neke aplikacije možda neće funkcionirati. Da biste uređaj vratili na produkcijski način rada, trebat ćete se vratiti na način od 4 KB, a zatim zaključati pokretač operativnog sustava, čime će se uređaj vratiti na tvorničke postavke. Nakon što uređaj uspješno pokrene Android, onemogućite otključavanje OEM-a u opcijama za razvojne programere. Podaci s uređaja će se izbrisati, a nakon potvrde datotečni sustav promijenit će se u ext4. Nakon što se to dovrši, vratite se da biste ponovno omogućili način od 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Izbriši sve podatke"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Formatiranje i čišćenje podatkovne particije u ext4 nije uspjelo."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Potrebno je otključavanje pokretača operativnog sustava"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Ovaj uređaj mora imati otključan pokretač operativnog sustava prije upotrebe opcije za razvojne programere od 16 KB. U ovom se načinu ne može zajamčiti integritet softvera, a svi podaci pohranjeni na telefonu mogu biti ugroženi dok je pokretač operativnog sustava otključan. Svi korisnički podaci i postavke izbrisat će se nakon aktiviranja načina od 16 KB. Nakon što se pokretač operativnog sustava otključa, za aktiviranje opcije od 16 KB bit će potrebno dva puta pokrenuti ponovno pokretanje. Nakon što prijeđete na ovaj način, možete se prebacivati između načina od 4 KB i 16 KB uz jedno ponovno pokretanje. Neke će značajke biti onemogućene u tim načinima, pa neke aplikacije možda neće funkcionirati. Da biste uređaj vratili na produkcijski način rada, trebat ćete se vratiti na način od 4 KB, a zatim zaključati OEM/pokretač operativnog sustava (čime će se uređaj vratiti na tvorničke postavke). Otključajte pokretač operativnog sustava i pokušajte ponovno. Upute kako to učiniti možete pronaći na web-lokaciji <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Upotreba načina od 4 KB koji ne ovisi o veličini stranice"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Aktivan je način od 4 KB koji ne ovisi o veličini stranice. U ovom se načinu ne može zajamčiti integritet softvera, a svi podaci pohranjeni na telefonu mogu biti ugroženi dok je pokretač operativnog sustava otključan. Neke će značajke biti onemogućene u tim načinima, pa neke aplikacije možda neće funkcionirati. Da biste se vratili u produkcijski način rada, morate zaključati pokretač operativnog sustava. Dodirnite za više informacija."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Aktivan je način od 4 KB koji ne ovisi o veličini stranice. U ovom se načinu ne može zajamčiti integritet softvera, a svi podaci pohranjeni na telefonu mogu biti ugroženi dok je pokretač operativnog sustava otključan. Neke će značajke biti onemogućene u tim načinima, pa neke aplikacije možda neće funkcionirati. Da biste ponovno ušli u produkcijski način rada, morate zaključati pokretač operativnog sustava uređaja. To će ponovno vratiti uređaj na tvorničke postavke i vratiti ga na produkcijske postavke. Nakon što uređaj uspješno pokrene Android, onemogućite otključavanje OEM-a u opcijama za razvojne programere. Ako uređaj ne uspije pokrenuti Android ili ako nije stabilan, ponovno instalirajte sliku sustava na uređaju s najnovijim tvorničkim verzijama firmwarea s web-lokacije <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ili upotrijebite web-lokaciju <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>, a zatim odaberite opcije Izbriši uređaj, Zaključaj pokretač operativnog sustava i Prisilno instaliraj sliku sustava na svim particijama."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Upotreba načina od 16 KB koji ne ovisi o veličini stranice"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Aktivan je način rada od 16 KB koji ne ovisi o veličini stranice. U ovom se načinu ne može zajamčiti integritet softvera, a svi podaci pohranjeni na telefonu mogu biti ugroženi dok je pokretač operativnog sustava otključan. Neke će značajke biti onemogućene u tim načinima, pa neke aplikacije možda neće funkcionirati. Da biste ponovno ušli u produkcijski način rada, morate se vratiti na način od 4 KB, a zatim zaključati pokretač operativnog sustava. Dodirnite da biste pročitali više."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Aktivan je način rada od 16 KB koji ne ovisi o veličini stranice. U ovom se načinu ne može zajamčiti integritet softvera, a svi podaci pohranjeni na telefonu mogu biti ugroženi dok je pokretač operativnog sustava otključan. Neke će značajke biti onemogućene u tim načinima, pa neke aplikacije možda neće funkcionirati. Da biste ponovno ušli u produkcijski način rada, morate se vratiti na način od 4 KB, a zatim zaključati pokretač operativnog sustava. To će ponovno vratiti uređaj na tvorničke postavke i vratiti ga na produkcijske postavke. Nakon što uređaj uspješno pokrene Android, onemogućite OEM otključavanje u opcijama za razvojne programere. Ako uređaj ne uspije pokrenuti Android ili ako nije stabilan, ponovno instalirajte sliku sustava na uređaju s najnovijim tvorničkim verzijama firmwarea s web-lokacije <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ili upotrijebite web-lokaciju <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>, a zatim odaberite opcije Izbriši uređaj, Zaključaj pokretač operativnog sustava i Prisilno instaliraj sliku sustava na svim particijama."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Način 16 od KB koji ne ovisi o veličini stranice"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Pročitajte više"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Rukovatelj izvješćem o programskim pogreškama"</string>
@@ -5189,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Odaberite što će se prikazivati na zaslonu kad se tablet nalazi na priključnoj stanici. Uređaj može trošiti više energije kad se koristi čuvar zaslona."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Prilagodite"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Prilagodite <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Za omogućivanje podrške slobodnom obliku potrebno je ponovno pokretanje."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Za prisilno uključivanje načina radne površine na sekundarnim zaslonima potrebno je ponovno pokretanje."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Za omogućivanje podrške za prikaz u naslijeđenim prozorima slobodnog oblika potrebno je ponovno pokretanje."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Za izmjenu podrške za prikaz u prozorima slobodnog oblika potrebno je ponovno pokretanje."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Za prisilno uključivanje prikaza u prozorima slobodnog oblika na sekundarnim zaslonima potrebno je ponovno pokretanje."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Ponovno pokreni sada"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Ponovno pokreni kasnije"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorni zvuk"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 66e539a..632991c 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Ez szükséges, mert a személyazonosság-ellenőrzés be van kapcsolva"</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>
@@ -617,7 +618,7 @@
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Az alkalmazások leállnak, amikor zárolja a területét"</b>\n"A területe zárolásakor a benne található alkalmazások leállnak, és nem fog tőlük értesítéseket kapni."</string>
<string name="private_space_apps_permission_text" msgid="4416201648436201393">"A privát területek nem alkalmasak olyan alkalmazások számára, amelyeknek a háttérben kell futniuk, vagy kulcsfontosságú értesítéseket kell küldeniük (ilyenek például az egészségügyi appok). Ez azért van így, mert az értesítések és a háttértevékenységek le vannak állítva, amikor zárolva van a terület.\n\nA privát területen lévő alkalmazások 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 zárolva van.\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_settings_footer_text" msgid="3742468470394835356">"A privát területek nem alkalmasak olyan alkalmazások számára, amelyeknek a háttérben kell futniuk, vagy kulcsfontosságú értesítéseket kell küldeniük (ilyenek például az egészségügyi appok). Ez azért van így, mert az értesítések és a háttértevékenységek le vannak állítva, amikor zárolva van a terület.\n\nA privát területen lévő alkalmazások 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 zárolva van.\n\nA privát terület nem állítható vissza új eszközön. Ha másik eszközön szeretné használni, akkor másik területet kell beállítania.\n\nBárki, aki az Ön eszközét számítógéphez csatlakoztatja, vagy rosszindulatú alkalmazást telepít az eszközére, hozzá tud férni az Ön privát területéhez."</string>
- <string name="private_space_learn_more_text" msgid="5314198983263277586">"További információ a magánterületről"</string>
+ <string name="private_space_learn_more_text" msgid="5314198983263277586">"További információ a privát területről"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Ez eltart egy kis ideig"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"A privát terület beállítása…"</string>
<string name="private_space_error_screen_title" msgid="739381738044418346">"Nem sikerült a privát terület beállítása"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opciók"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Kisegítő lehetőségek"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fizikai billentyűzet"</string>
- <string name="show_ime" msgid="4334255501724746849">"Képernyő-billentyűzet használata"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Maradjon a képernyőn, amíg a fizikai billentyűzet aktív"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Billentyűblokkolás"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"A billentyűzet nem veszi figyelembe, ha ugyanazt a billentyűt többször is lenyomják <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms-on belül"</string>
<string name="slow_keys" msgid="2891452895499690837">"Lassú billentyűk"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Folytatás mégis"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Mégse"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nagyítási beállítások"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"A nagyító mozgatása egy ujjal"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Egy ujjal húzva mozgathatja a képernyő tartalmát"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"A nagyítási terület mozgatása egy ujj húzásával."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"A nagyítási terület mozgatása két ujj húzásával."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nem áll rendelkezésre, ha a nagyítás csak a képernyő egy részére terjed ki"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Nagyításhoz koppintson a gombra"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Gyorsan nagyíthat a képernyőn a tartalom felnagyítása érdekében"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>A nagyításhoz:</b><br/> {0,number,integer}. Használja a gyorsparancsot a nagyítás megkezdéséhez.<br/> {1,number,integer}. Koppintson a képernyőre.<br/> {2,number,integer}. Két ujjának húzásával mozoghat a képernyőn.<br/> {3,number,integer}. Két ujjának összehúzásával módosíthatja a nagyítási szintet.<br/> {4,number,integer}. A gyorsparancs segítségével leállíthatja a nagyítási funkciót.<br/><br/><b>Az ideiglenes nagyításhoz:</b><br/> {0,number,integer}. Ellenőrizze, hogy a nagyítás típusa teljes képernyőre van-e beállítva.<br/> {1,number,integer}. Használja a gyorsparancsot a nagyítás megkezdéséhez.<br/> {2,number,integer}. Tartsa lenyomva egyik ujját bárhol a képernyőn.<br/> {3,number,integer}. Ujjának húzásával mozoghat a képernyőn.<br/> {4,number,integer}. Emelje fel ujját a nagyítás befejezéséhez."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>A nagyításhoz:</b><br/> {0,number,integer}. Használja a gyorsparancsot a nagyítás megkezdéséhez.<br/> {1,number,integer}. Koppintson a képernyőre.<br/> {2,number,integer}. Két ujjal húzva mozgathatja a képernyő tartalmát.<br/> {3,number,integer}. Két ujjának összehúzásával módosíthatja a nagyítási szintet.<br/> {4,number,integer}. A gyorsparancs használatával leállíthatja a nagyítást<br/><br/> Egyebek mellett ideiglenesen is nagyíthat."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>A nagyításhoz:</b><br/> {0,number,integer}. Használja a gyorsparancsot a nagyítás megkezdéséhez.<br/> {1,number,integer}. Koppintson a képernyőre.<br/> {2,number,integer}. Egy vagy két ujjal húzva mozgathatja a képernyő tartalmát<br/> {3,number,integer}. Két ujjának összehúzásával módosíthatja a nagyítási szintet.<br/> {4,number,integer}. A gyorsparancs használatával leállíthatja a nagyítást<br/><br/> Egyebek mellett ideiglenesen is nagyíthat."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Ha be van kapcsolva a nagyítás funkció, ránagyíthat a képernyő tartalmára.\n\nA "<b>"nagyításhoz"</b>", indítsa el a funkciót, majd koppintson a kívánt területre a képernyőn.\n"<ul><li>"Görgetéshez húzza legalább két ujját a képernyőn."</li>\n<li>"A nagyítás mértékét két vagy több ujjának össze- vagy széthúzásával módosíthatja."</li></ul>\n\n<b>"Ideiglenes nagyításhoz"</b>" indítsa el a funkciót, majd tartsa lenyomva a kívánt területet a képernyőn.\n"<ul><li>"Ujját lenyomva tartva mozoghat a képernyőn."</li>\n<li>"A méret visszaállításához emelje fel ujját a képernyőről."</li></ul>\n\n"A billentyűzeten és a navigációs sávon nem lehetséges a nagyítás."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>/<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. oldal"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Gyorsparancs a Kisegítő lehetőségek gombhoz"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Mód létrehozása"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Egyéni"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"A megszakítások korlátozása"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"A Ne zavarjanak mód bekapcsolása"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Az ébresztések és médiahangok megszakíthatják a „Ne zavarjanak” módot"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Állítson be ütemezést"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Ütemezés"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ó, <xliff:g id="MINUTES">%2$d</xliff:g> p"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Automatikus bekapcsolás"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ütemezés"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Telefonnémítás ütemezése"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"A Ne zavarjanak szabályai"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"értesítés megnyitása"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Értesítés halasztásának engedélyezése"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Értesítési pötty az alkalmazásikonon"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Értesítéscsomagok"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Buborékok"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Buborékok"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Beszélgetés buborékba helyezése"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Összes"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Felülbírálás engedélyezése az alkalmazások számára"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Azok az alkalmazások, amelyeknél engedélyezve van a megszakítás"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"További alkalmazások kiválasztása"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Tok"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akkumulátor"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Beállítások panel"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Asztali mód kényszerítése"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Kísérleti asztali mód kényszerítése a másodlagos kijelzőkön"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Szabad formájú ablakok engedélyezése"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Szabad formájú ablakok támogatásának engedélyezése."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Szabad formájú ablakkezelés engedélyezése 2. kijelzőn"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Szabad formájú ablakok engedélyezése csak a másodlagos kijelzőn."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Nem átméretezhető appok engedélyezése többablakos nézetben"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Engedélyezi a nem átméretezhető alkalmazásokat a többablakos nézetben"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"A kényszerített sötétítés felülírása"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"A 16 kB-os fejlesztői opció használata előtt konvertálja ext4 fájlrendszerre az eszköz adatpartícióját. A szoftverek integritása nem garantálható ebben a módban, és a telefonon tárolt összes adat veszélyben lehet, amíg a rendszerindító zárolása fel van oldva. A 16 kB-os opció aktiválásával még egy újraindításra van szükség ezután. Ebben a módban egyetlen újraindítással válthat oda és vissza a 4 kB-os és a 16 kB-os mód között. Egyes funkciók le lesznek tiltva ezekben a módokban, ezért előfordulhat, hogy néhány alkalmazás nem működik. Ha szeretné az eszközt éles üzemmódba visszaállítani, akkor annyit kellene tennie, hogy visszavált 4 kB-os módra, majd zárolja a rendszerindítót, ezzel ugyanis visszaállítja az eszközt a gyári beállításokra. Miután az eszköz sikeresen elindította az Android rendszert, tiltsa le az OEM-feloldást a Fejlesztői beállítások funkcióban. A rendszer ekkor törli az eszköz adatait, a fájlrendszer pedig a megerősítést követően ext4 rendszerre módosul. Miután a folyamat befejeződött, próbálja újra engedélyezni a 16 kB-os módot."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Minden adat törlése"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Nem sikerült az ext4 fájlrendszerre való újraformatálás és az adatpartíció adatainak visszaállíthatatlan törlése."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Fel kell oldani a rendszerindítót"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"A 16 kB-os fejlesztői opció használata előtt fel kell oldani ezen az eszközön a rendszerindító zárolását. A szoftverek integritása nem garantálható ebben a módban, és a telefonon tárolt összes adat veszélyben lehet, amíg rendszerindító zárolása fel van oldva. A 16 kB-os mód aktiválásakor a rendszer minden felhasználói adatot és beállítást töröl. A rendszerindító zárolásának feloldása után két újraindítás szükséges a 16 kB-os opció aktiválásához. Ebben a módban egyetlen újraindítással válthat oda és vissza a 4 kB-os és a 16 kB-os mód között. Egyes funkciók le lesznek tiltva ezekben a módokban, ezért előfordulhat, hogy néhány alkalmazás nem működik. Ha szeretné az eszközt éles üzemmódba visszaállítani, akkor annyit kellene tennie, hogy visszavált 4 kB-os módra, majd zárolja az eszközön az OEM-et/rendszerindítót (ezzel visszaállítja az eszközt a gyári beállításokra). Oldja fel a rendszerindító zárolását, majd próbálkozzon újra. A művelettel kapcsolatos utasításokat itt találja: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4 kB-os, lapmérettől független módot használ"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Ön jelenleg a lapmérettől független mód 4 kB-os módjában van. A szoftverek integritása nem garantálható ebben a módban, és a telefonon tárolt összes adat veszélyben lehet, amíg a rendszerindító zárolása fel van oldva. Egyes funkciók le lesznek tiltva ezekben a módokban, ezért előfordulhat, hogy néhány alkalmazás nem működik. Ha szeretne visszalépni az éles üzemmódba, zárolja az eszköz rendszerindítóját. Koppintson a további információk megtekintéséhez."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Ön jelenleg a lapmérettől független mód 4 kB-os módjában van. A szoftverek integritása nem garantálható ebben a módban, és a telefonon tárolt összes adat veszélyben lehet, amíg a rendszerindító zárolása fel van oldva. Egyes funkciók le lesznek tiltva ezekben a módokban, ezért előfordulhat, hogy néhány alkalmazás nem működik. Ha szeretne visszalépni az éles üzemmódba, zárolja az eszköz rendszerindítóját. Ezzel újra visszaállítja az eszközt a gyári beállításokra, és egyúttal az éles beállításokra is. Miután az eszköz sikeresen elindította az Android rendszert, tiltsa le az OEM-feloldást a Fejlesztői beállítások funkcióban. Ha az eszköz nem indítja el az Android rendszert vagy nem stabil, telepítse újra az eszközt a legújabb gyári képfájlokkal a következő oldalon leírt módon: <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>. Másik megoldásként használhatja a <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> webhelyet is, ahol válassza a következő lehetőségeket: „Wipe Device” (Eszközadatok visszaállíthatatlan törlése), „Lock Bootloader” (Rendszerindító zárolása) és „Force Flash all partitions” (Összes partíció telepítésének kényszerítése)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16 kB-os, lapmérettől független módot használ"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Ön jelenleg a lapmérettől független mód 16 kB-os módjában van. A szoftverek integritása nem garantálható ebben a módban, és a telefonon tárolt összes adat veszélyben lehet, amíg a rendszerindító zárolása fel van oldva. Egyes funkciók le lesznek tiltva ezekben a módokban, ezért előfordulhat, hogy néhány alkalmazás nem működik. Ha szeretne visszalépni az éles üzemmódba, váltson vissza a 4 kB-os módra, majd zárolja az eszköz rendszerindítóját. Koppintson a további információk megtekintéséhez."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Ön jelenleg a lapmérettől független mód 16 kB-os módjában van. A szoftverek integritása nem garantálható ebben a módban, és a telefonon tárolt összes adat veszélyben lehet, amíg a rendszerindító zárolása fel van oldva. Egyes funkciók le lesznek tiltva ezekben a módokban, ezért előfordulhat, hogy néhány alkalmazás nem működik. Ha szeretne visszalépni az éles üzemmódba, váltson vissza a 4 kB-os módra, majd zárolja az eszköz rendszerindítóját. Ezzel újra visszaállítja az eszközt a gyári beállításokra, és egyúttal az éles beállításokra is. Miután az eszköz sikeresen elindította az Android rendszert, tiltsa le az OEM-feloldást a Fejlesztői beállítások funkcióban. Ha az eszköz nem indítja el az Android rendszert, vagy nem stabil, telepítse újra az eszközt a legújabb gyári képfájlokkal a következő oldalon leírt módon: <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>. Másik megoldásként használhatja a <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> webhelyet is, ahol válassza a következő lehetőségeket: „Wipe Device” (Eszközadatok visszaállíthatatlan törlése), „Lock Bootloader” (Rendszerindító zárolása) és „Force Flash all partitions” (Összes partíció telepítésének kényszerítése)."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 kB-os, lapmérettől független mód"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Továbbiak"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Hibajelentés kezelője"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Kiválaszthatja, hogy mi legyen látható a képernyőn, amikor a táblagép dokkolt állapotban van. Előfordulhat, hogy az eszköz több energiát használ, ha a képernyőkímélő be van kapcsolva."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Szerkesztés"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> személyre szabása"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A szabad formátumú támogatás engedélyezéséhez újraindításra van szükség."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Az asztali mód másodlagos kijelzőkön való kényszerítéséhez újraindításra van szükség."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Újraindítás szükséges a régi szabad formájú ablakkezelés támogatásának engedélyezéséhez."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Újraindítás szükséges a szabad formájú ablakkezelés támogatásának módosításához."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Újraindítás szükséges a szabad formájú ablakkezelés másodlagos kijelzőre való kényszerítéséhez."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Újraindítás most"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Újraindítás később"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Térbeli hangzás"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 170e4ec..5b2d6f5 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Դեմքով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Դեմքով, մատնահետքով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Դեմքով, մատնահետքերով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Սա անհրաժեշտ է, քանի որ «Անձի նույնականացում» գործառույթը միացված է"</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>
@@ -615,7 +616,7 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Տեղադրեք հավելվածներ"</b>\n"Ձեր տարածքում տեղադրեք հավելվածներ, որոնք չեք ուզում, որ ցուցադրվեն"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Հիշեք"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Եթե կողպեք տարածքը, հավելվածները կդադարեն աշխատել"</b>\n"Երբ կողպեք ձեր տարածքը, տարածքի հավելվածները կդադարեն աշխատել, և դուք դրանցից ծանուցումներ չեք ստանա"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Մասնավոր տարածքները հարմար չեն հավելվածների համար, որոնք պետք է աշխատեն ֆոնային ռեժիմում և ուղարկեն կարևոր ծանուցումներ, օրինակ՝ բժշկական հավելվածների։ Պատճառն այն է, որ ծանուցումները և ֆոնային ռեժիմում աշխատանքը դադարում են, երբ ձեր տարածքը կողպվում է։\n\nՁեր մասնավոր տարածքի հավելվածները չեն հայտնվի թույլտվությունների կառավարչում, թույլտվությունների կառավարման վահանակում և այլ կարգավորումներում, երբ մասնավոր տարածքը կողպված է։\n\nՄասնավոր տարածքը հնարավոր չի լինի վերականգնել նոր սարքում։ Դուք պետք է այլ անձնական տարածք կարգավորեք, եթե ուզում եք այն օգտագործել ուրիշ սարքում։\n\nՑանկացած մեկը, ով ձեր սարքը միացնի համակարգչի կամ վնասաբեր հավելվածներ տեղադրի ձեր սարքում, կկարողանա բացել ձեր մասնավոր տարածքը։"</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Մասնավոր տարածքները հարմար չեն հավելվածների համար, որոնք պետք է աշխատեն ֆոնային ռեժիմում և ուղարկեն կարևոր ծանուցումներ, օրինակ՝ բժշկական հավելվածների։ Պատճառն այն է, որ ծանուցումները և ֆոնային ռեժիմում աշխատանքը դադարում են, երբ ձեր տարածքը կողպվում է։\n\nՁեր մասնավոր տարածքի հավելվածները չեն հայտնվի թույլտվությունների կառավարչում, թույլտվությունների կառավարման վահանակում և այլ կարգավորումներում, երբ մասնավոր տարածքը կողպված է։\n\nՄասնավոր տարածքը հնարավոր չի լինի վերականգնել նոր սարքում։ Դուք պետք է այլ մասնավոր տարածք կարգավորեք, եթե ուզում եք այն օգտագործել ուրիշ սարքում։\n\nՑանկացած մեկը, ով ձեր սարքը միացնի համակարգչի կամ վնասաբեր հավելվածներ տեղադրի ձեր սարքում, կկարողանա բացել ձեր մասնավոր տարածքը։"</string>
<string name="private_space_settings_footer_text" msgid="3742468470394835356">"Մասնավոր տարածքները հարմար չեն հավելվածների համար, որոնք պետք է աշխատեն ֆոնային ռեժիմում և ուղարկեն կարևոր ծանուցումներ, օրինակ՝ բժշկական հավելվածների։ Պատճառն այն է, որ ծանուցումները և ֆոնային ռեժիմում աշխատանքը դադարում են, երբ ձեր տարածքը կողպվում է։\n\nՁեր մասնավոր տարածքի հավելվածները չեն հայտնվի թույլտվությունների կառավարչում, թույլտվությունների կառավարման վահանակում և այլ կարգավորումներում, երբ մասնավոր տարածքը կողպված է։\n\nՄասնավոր տարածքը հնարավոր չի լինի վերականգնել նոր սարքում։ Դուք պետք է այլ տարածք կարգավորեք, եթե ուզում եք այն օգտագործել ուրիշ սարքում։\n\nՑանկացած մեկը, ով ձեր սարքը միացնի համակարգչի կամ վնասաբեր հավելվածներ տեղադրի ձեր սարքում, կկարողանա բացել ձեր մասնավոր տարածքը։"</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Իմանալ ավելին մասնավոր տարածքի մասին"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Դա կտևի մի քանի րոպե"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Տարբերակներ"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Հատուկ գործառույթներ"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Ֆիզիկական ստեղնաշար"</string>
- <string name="show_ime" msgid="4334255501724746849">"Օգտագործել էկրանի ստեղնաշարը"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Պահել էկրանին, երբ ֆիզիկական ստեղնաշարն ակտիվ է"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Կրկնակի սեղմման անտեսում"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Ստեղնաշարը անտեսում է միևնույն ստեղնի արագ սեղմումները, որոնք կրկնվում են <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> մվ-ի ընթացքում"</string>
<string name="slow_keys" msgid="2891452895499690837">"Դանդաղ ստեղներ"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Շարունակել"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Չեղարկել"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Խոշորացման կարգավորումներ"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Տեղաշարժեք խոշորացույցը 1 մատով"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Քաշեք մեկ մատով՝ էկրանին տեղաշարժվելու համար"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Տեղափոխեք խոշորացման ընդգրկույթը՝ մեկ մատով քաշելով։"</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Տեղափոխեք խոշորացման ընդգրկույթը՝ երկու մատով քաշելով։"</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Հասանելի չէ, երբ միայն էկրանի մի մասն է խոշորացվում"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Հպել որևէ կոճակի՝ մեծացնելու համար"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Արագ խոշորացրեք էկրանը՝ բովանդակությունն ավելի պարզ տեսնելու համար"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Խոշորացնելու համար՝</b><br/> {0,number,integer}. Օգտագործեք դյուրանցումը<br/> {1,number,integer}. Հպեք էկրանին<br/> {2,number,integer}. Քաշեք երկու մատով՝ էկրանի վրա տեղաշարժվելու համար<br/> {3,number,integer}. Շարժեք երկու մատը՝ խոշորացումը կարգավորելու համար<br/> {4,number,integer}. Դյուրանցման միջոցով դադարեցրեք խոշորացումը<br/><br/> <b>Ժամանակավորապես խոշորացնելու համար՝</b><br/> {0,number,integer}. Համոզվեք, որ խոշորացման համար նշված է լիաէկրան ռեժիմը<br/> {1,number,integer}. Օգտագործեք դյուրանցումը<br/> {2,number,integer}. Հպեք էկրանի որևէ մասի և պահեք<br/> {3,number,integer}. Քաշեք մատով՝ էկրանի վրա տեղաշարժվելու համար<br/> {4,number,integer}. Հեռացրեք մատը էկրանից՝ խոշորացումը դադարեցնելու համար"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Մեծացնելու համար՝</b><br/> {0,number,integer}․ Օգտագործեք դյուրանցումը՝ խոշորացումը սկսելու համար<br/> {1,number,integer}. Հպեք էկրանին<br/> {2,number,integer}. Քաշեք երկու մատով՝ էկրանի վրա տեղաշարժվելու համար<br/> {3,number,integer}. Շարժեք երկու մատը՝ խոշորացումը կարգավորելու համար<br/> {4,number,integer}. Օգտագործեք դյուրանցումը՝ խոշորացումը կանգնեցնելու համար<br/><br/> Կարող եք նաև ժամանակավորապես մեծացնել և այլ գործողություններ կատարել։"</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Մեծացնելու համար՝</b><br/> {0,number,integer}․ Օգտագործեք դյուրանցումը՝ խոշորացումը սկսելու համար<br/> {1,number,integer}. Հպեք էկրանին<br/> {2,number,integer}. Քաշեք մեկ կամ երկու մատով՝ էկրանի վրա տեղաշարժվելու համար<br/> {3,number,integer}. Շարժեք երկու մատը՝ խոշորացումը կարգավորելու համար<br/> {4,number,integer}. Օգտագործեք դյուրանցումը՝ խոշորացումը կանգնեցնելու համար<br/><br/> Կարող եք նաև ժամանակավորապես մեծացնել և այլ գործողություններ կատարել։"</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Երբ խոշորացումը միացված է, դուք կարող եք մեծացնել էկրանի մասշտաբը:\n\n"<b>"Մասշտաբը մեծացնելու համար"</b>"միացրեք խոշորացումը և հպեք էկրանի ցանկացած հատվածին:\n"<ul><li>"Ոլորելու համար 2 կամ ավելի մատները քաշեք էկրանի վրայով։"</li>\n<li>"Մասշտաբը փոխելու համար 2 կամ ավելի մատները մոտեցրեք միմյանց։"</li></ul>\n\n<b>"Մասշտաբը ժամանակավորապես փոխելու համար"</b>" միացրեք խոշորացումը, ապա հպեք էկրանի ցանկացած հատվածին և պահեք։\n"<ul><li>"Քաշեք՝ էկրանով մեկ շարժելու համար։"</li>\n<li>"Բարձրացրեք մատը՝ փոքրացնելու համար։"</li></ul>\n\n"Ստեղնաշարի կամ նավիգացիայի գոտու միջոցով հնարավոր չէ մեծացնել:"</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Էջ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"«Հատուկ գործառույթներ» կոճակի դյուրանցում"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Ստեղծեք ռեժիմ"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Հատուկ"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ընդհատումների սահմանափակում"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Միացրեք «Չանհանգստացնել» ռեժիմը"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Զարթուցիչներն ու մեդիայի ձայները"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Սահմանեք ժամանակացույց"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Ժամանակացույց"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ժ <xliff:g id="MINUTES">%2$d</xliff:g> ր"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Ավտոմատ միացնել"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ժամանակացույց"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Հեռախոսի ձայնի անջատում որոշակի ժամերի"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"«Չանհանգստացնել» ռեժիմի կանոնների սահմանում"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"բացել ծանուցումը"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Թույլատրել ծանուցումների հետաձգումը"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Ծանուցման կետիկ հավելվածի պատկերակի վրա"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Ծանուցումների փաթեթներ"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Ամպիկներ"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Ամպիկներ"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Ցույց տալ այս զրույցն ամպիկներում"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Բոլորը"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Թույլատրել հավելվածներին փոխել «Չանհանգստացնել» ռեժիմի կարգավորումները"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Հավելվածներ, որոնք կարող են ընդհատել"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Ընտրեք այլ հավելվածներ"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Պատյան"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Մարտկոց"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Կարգավորումների վահանակ"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Աշխատասեղանի ռեժիմի հարկադրված միացում"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Աշխատասեղանի փորձնական ռեժիմի հարկադրված միացում լրացուցիչ էկրանների վրա"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Միացնել կամայական ձևի պատուհանները"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Միացնել կամայական ձևի պատուհանների աջակցումը։"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Միացնել կամայական ձևի պատուհանները երկրորդ էկրանին"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Միացնել կամայական ձևի պատուհանները միայն լրացուցիչ էկրանին։"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Միացնել չփոփոխվող մասշտաբը բազմապատուհան ռեժիմում"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Թույլ է տալիս հավելվածները բացել չփոփոխվող մասշտաբով բազմապատուհան ռեժիմում"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Չեղարկել մուգ ռեժիմի պարտադիր միացումը"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Նախքան մշակողի 16 ԿԲ ընտրանքն օգտագործելը սարքի տվյալների բաժինն անհրաժեշտ է փոխարկել ext4 ֆայլային համակարգի։ Ծրագրի ամբողջականությունը հնարավոր չէ երաշխավորել այս ռեժիմում, և ցանկացած տվյալ, որը պահվում է հեռախոսում, քանի դեռ բեռնիչը ապակողպված է, կարող է վտանգված լինել։ 16 ԿԲ ընտրանքի ակտիվացման համար կարող է պահանջվել ևս մեկ վերագործարկում։ Երբ անցնեք այս ռեժիմին, մեկ վերագործարկմամբ կկարողանաք անցում կատարել 4 ԿԲ և 16 ԿԲ ռեժիմների միջև։ Որոշ գործառույթներ կանջատվեն այս ռեժիմներում, ուստի հնարավոր է՝ ոչ բոլոր հավելվածներն աշխատեն։ Սարքն արտադրական ռեժիմին վերադարձնելու համար պետք է նորից անցնեք 4 ԿԲ ռեժիմին և կողպեք օպերացիոն համակարգի բեռնիչը, որը վերականգնում է սարքի գործարանային կարգավորումները։ Android-ը հաջողությամբ գործարկելուց հետո Մշակողի ընտրանքներում անջատեք OEM-ի ապակողպումը։ Հաստատումից հետո սարքի տվյալները կսրբվեն, և ֆայլային համակարգը կփոխարինվի ext4-ով։ Դրանից հետո նորից վերադարձեք՝ 16 ԿԲ-ը կրկին միացնելու համար։"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Ջնջել բոլոր տվյալները"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Չհաջողվեց վերաֆորմատավորել սարքը ext4 ֆայլային համակարգի և սրբել տվյալների բաժինը։"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Պահանջվում է բեռնիչով ապակողպում"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Նախքան մշակողի 16 ԿԲ ընտրանքն օգտագործելը հարկավոր է ապակողպել օպերացիոն համակարգի բեռնիչը։ Ծրագրի ամբողջականությունը հնարավոր չէ երաշխավորել այս ռեժիմում, և ցանկացած տվյալ, որը պահվում է հեռախոսում, քանի դեռ բեռնիչը ապակողպված է, կարող է վտանգված լինել։ Երբ 16 ԿԲ ռեժիմն ակտիվացվի, օգտատիրոջ բոլոր տվյալները և կարգավորումները կսրբվեն։ Հենց որ օպերացիոն համակարգի բեռնիչն ապակողպվի, 16 ԿԲ ընտրանքի ակտիվացման համար կպահանջվի երկու վերագործարկում։ Երբ անցնեք այս ռեժիմին, մեկ վերագործարկմամբ կկարողանաք անցում կատարել 4 ԿԲ և 16 ԿԲ ռեժիմների միջև։ Որոշ գործառույթներ կանջատվեն այս ռեժիմներում, ուստի հնարավոր է՝ ոչ բոլոր հավելվածներն աշխատեն։ Սարքը արտադրական ռեժիմին վերադարձնելու համար անհրաժեշտ է նորից անցնել 4 ԿԲ ռեժիմին և կողպել OEM-ը / օպերացիոն համակարգի բեռնիչը, որը վերականգնում է սարքի գործարանային կարգավորումները։ Ապակողպեք օպերացիոն համակարգի բեռնիչը և նորից փորձեք։ Թե ինչպես կարող եք դա անել, կարդացեք այստեղ՝ <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Էջաչափից անկախ 4 ԿԲ ռեժիմի օգտագործում"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Դուք էջաչափից անկախ 4 ԿԲ ռեժիմում եք։ Ծրագրի ամբողջականությունը հնարավոր չէ երաշխավորել այս ռեժիմում, և ցանկացած տվյալ, որը պահվում է հեռախոսում, քանի դեռ բեռնիչը ապակողպված է, կարող է վտանգված լինել։ Որոշ գործառույթներ կանջատվեն այս ռեժիմներում, ուստի հնարավոր է՝ ոչ բոլոր հավելվածներն աշխատեն։ Արտադրական ռեժիմին վերադառնալու համար պետք է կողպեք սարքի օպերացիոն համակարգի բեռնիչը։ Հպեք՝ ավելին իմանալու համար։"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Դուք էջաչափից անկախ ռեժիմի 4 ԿԲ ռեժիմում եք։ Ծրագրի ամբողջականությունը հնարավոր չէ երաշխավորել այս ռեժիմում, և ցանկացած տվյալ, որը պահվում է հեռախոսում, քանի դեռ բեռնիչը ապակողպված է, կարող է վտանգված լինել։ Որոշ գործառույթներ կանջատվեն այս ռեժիմներում, ուստի հնարավոր է՝ ոչ բոլոր հավելվածներն աշխատեն։ Արտադրական ռեժիմին վերադառնալու համար պետք է կողպեք սարքի օպերացիոն համակարգի բեռնիչը։ Սարքի գործարանային կարգավորումները նորից կվերականգնվեն, և այն կանցնի արտադրական կարգավորումների ռեժիմ։ Android-ը հաջողությամբ գործարկելուց հետո Մշակողի ընտրանքներում անջատեք OEM-ի ապակողպումը։ Եթե սարքն անկայուն է աշխատում, կամ չհաջողվի այն գործարկել Android-ով, թարմացրեք սարքը՝ օգտագործելով գործարանային պատկերներ <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> էջից կամ անցեք <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> և ընտրեք «Սրբել սարքը», «Կողպել օպերացիոն համակարգի բեռնիչը» և «Ստիպողաբար թարմացնել բոլոր բաժինները»։"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Էջաչափից անկախ 16 ԿԲ ռեժիմի օգտագործում"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Դուք էջի չափսից չկախված ռեժիմի 16 ԿԲ ռեժիմում եք։ Ծրագրի ամբողջականությունը հնարավոր չէ երաշխավորել այս ռեժիմում, և ցանկացած տվյալ, որը պահվում է հեռախոսում, քանի դեռ բեռնիչը ապակողպված է, կարող է վտանգված լինել։ Որոշ գործառույթներ կանջատվեն այս ռեժիմներում, ուստի հնարավոր է՝ ոչ բոլոր հավելվածներն աշխատեն։ Արտադրական ռեժիմին վերադառնալու համար պետք է նորից անցնեք 4 ԿԲ ռեժիմին և կողպեք սարքի օպերացիոն համակարգի բեռնիչը։ Հպեք՝ ավելին իմանալու համար։"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Դուք էջի չափսից չկախված ռեժիմի 16 ԿԲ ռեժիմում եք։ Ծրագրի ամբողջականությունը հնարավոր չէ երաշխավորել այս ռեժիմում, և ցանկացած տվյալ, որը պահվում է հեռախոսում, քանի դեռ բեռնիչը ապակողպված է, կարող է վտանգված լինել։ Որոշ գործառույթներ կանջատվեն այս ռեժիմներում, ուստի հնարավոր է՝ ոչ բոլոր հավելվածներն աշխատեն։ Արտադրական ռեժիմին վերադառնալու համար պետք է նորից անցնեք 4 ԿԲ ռեժիմին և կողպեք սարքի օպերացիոն համակարգի բեռնիչը։ Սարքի գործարանային կարգավորումները նորից կվերականգնվեն, և այն կանցնի արտադրական կարգավորումների ռեժիմ։ Android-ը հաջողությամբ գործարկելուց հետո Մշակողի ընտրանքներում անջատեք OEM-ի ապակողպումը։ Եթե սարքն անկայուն է աշխատում, կամ չհաջողվի այն գործարկել Android-ով, թարմացրեք սարքը՝ օգտագործելով գործարանային պատկերներ <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> էջից կամ անցեք <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> և ընտրեք «Սրբել սարքը», «Կողպել օպերացիոն համակարգի բեռնիչը» և «Ստիպողաբար թարմացնել բոլոր բաժինները»։"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Էջաչափից անկախ 16 ԿԲ ռեժիմ"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Կարդալ ավելին"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Վրիպակների մասին հաշվետվությունների մշակիչ"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Ընտրեք, թե ինչ եք ուզում տեսնել ձեր սարքի էկրանին, երբ ձեր պլանշետը դոկ-կայանում է։ Ձեր սարքը կարող է ավելի շատ էներգիա ծախսել, երբ էկրանապահ է օգտագործվում։"</string>
<string name="customize_button_title" msgid="1110284655990203359">"Հարմարեցնել"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Անհատականացնել «<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>» էկրանապահը"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Կամայական ձևի պատուհանների ստեղծման աջակցումը միացնելու համար պահանջվում է վերաբեռնում։"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Լրացուցիչ էկրաններին համակարգչի ռեժիմը հարկադրաբար միացնելու համար պահանջվում է վերաբեռնում։"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Կամայական ձևի պատուհանների ստեղծման հնացած գործառույթի աջակցումը միացնելու համար պահանջվում է վերաբեռնում։"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Կամայական ձևի պատուհանների ստեղծման աջակցումը փոփոխելու համար պահանջվում է վերաբեռնում։"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Լրացուցիչ էկրաններին կամայական ձևի պատուհանները հարկադրաբար միացնելու համար պահանջվում է վերաբեռնում։"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Վերաբեռնել հիմա"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Վերաբեռնել ավելի ուշ"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Տարածական հնչողություն"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 741b56a..e1bbfe9 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Hal ini diperlukan karena Pemeriksaan Identitas diaktifkan"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opsi"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Aksesibilitas"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Keyboard fisik"</string>
- <string name="show_ime" msgid="4334255501724746849">"Gunakan keyboard virtual"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Biarkan di layar meski keyboard fisik aktif"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Tombol pantul"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Keyboard mengabaikan penekanan tombol yang sama secara berulang dan cepat dalam <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> md"</string>
<string name="slow_keys" msgid="2891452895499690837">"Tombol lambat"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Tetap lanjutkan"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Batal"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Setelan pembesaran"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Gerakkan pembesar dengan 1 jari"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Tarik 1 jari untuk berpindah pada layar"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Pindahkan area pembesaran dengan menarik satu jari."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Pindahkan area pembesaran dengan menarik dua jari."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Tidak tersedia ketika hanya memperbesar sebagian layar"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Ketuk tombol untuk zoom"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Perbesar layar dengan cepat untuk membuat konten terlihat lebih besar"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Untuk memperbesar:</b><br/> {0,number,integer}. Gunakan pintasan untuk memulai pembesaran<br/> {1,number,integer}. Ketuk layar<br/> {2,number,integer}. Tarik dengan 2 jari untuk berpindah pada layar<br/> {3,number,integer}. Cubit dengan 2 jari untuk menyesuaikan zoom<br/> {4,number,integer}. Gunakan pintasan untuk menghentikan pembesaran<br/><br/> <b>Untuk memperbesar sementara:</b><br/> {0,number,integer}. Pastikan jenis pembesaran disetel ke layar penuh<br/> {1,number,integer}. Gunakan pintasan untuk memulai pembesaran<br/> {2,number,integer}. Sentuh lama di mana pun pada layar<br/> {3,number,integer}. Tarik dengan jari untuk berpindah pada layar<br/> {4,number,integer}. Angkat jari untuk menghentikan pembesaran"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Untuk memperbesar:</b><br/> {0,number,integer}. Gunakan pintasan untuk memulai pembesaran<br/> {1,number,integer}. Ketuk layar<br/> {2,number,integer}. Tarik 2 jari untuk berpindah pada layar<br/> {3,number,integer}. Cubit dengan 2 jari untuk menyesuaikan zoom<br/> {4,number,integer}. Gunakan pintasan untuk menghentikan pembesaran<br/><br/> Anda juga dapat memperbesar sementara dan lainnya."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Untuk memperbesar:</b><br/> {0,number,integer}. Gunakan pintasan untuk memulai pembesaran<br/> {1,number,integer}. Ketuk layar<br/> {2,number,integer}. Tarik 1 atau 2 jari untuk berpindah pada layar<br/> {3,number,integer}. Cubit dengan 2 jari untuk menyesuaikan zoom<br/> {4,number,integer}. Gunakan pintasan untuk menghentikan pembesaran<br/><br/> Anda juga dapat memperbesar sementara dan lainnya."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Jika pembesaran diaktifkan, Anda dapat memperbesar tampilan layar.\n\n"<b>"Untuk memperbesar tampilan"</b>", mulai pembesaran, lalu ketuk di bagian mana saja pada layar.\n"<ul><li>"Tarik dengan 2 jari atau lebih untuk melakukan scroll"</li>\n<li>"Cubit dengan 2 jari atau lebih untuk menyesuaikan pembesaran"</li></ul>\n\n<b>"Untuk memperbesar tampilan sementara"</b>", mulai pembesaran, lalu sentuh lama di bagian mana saja pada layar.\n"<ul><li>"• Tarik untuk menggeser layar"</li>\n<li>"• Angkat jari untuk memperkecil tampilan"</li></ul>\n\n"Anda tidak dapat memperbesar keyboard atau menu navigasi."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Halaman <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> dari <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Pintasan tombol aksesibilitas"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Buat mode"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Kustom"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Batasi gangguan"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Aktifkan mode Jangan Ganggu"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarm dan media boleh menginterupsi"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Setel jadwal"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Jadwal"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> jam, <xliff:g id="MINUTES">%2$d</xliff:g> mnt"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Aktifkan secara otomatis"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Jadwal"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Nonaktifkan notifikasi ponsel pada waktu tertentu"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Setel aturan Jangan Ganggu"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"membuka notifikasi"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Izinkan penundaan notifikasi"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Titik notifikasi di ikon aplikasi"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Paket notifikasi"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Balon"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Balon"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Tampilkan percakapan ini dalam balon"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Semua"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Izinkan aplikasi mengganti"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikasi yang boleh menginterupsi"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pilih aplikasi lain"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Casing"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterai"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel Setelan"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Paksa mode desktop"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Paksa mode desktop eksperimental di layar sekunder"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktifkan jendela freeform"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Aktifkan dukungan untuk jendela freeform."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Aktifkan windowing freeform di layar sekunder"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Aktifkan jendela freeform hanya di layar sekunder."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktifkan ukuran tidak dapat diubah di multi-jendela"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Izinkan aplikasi yang ukurannya tidak dapat diubah di multi-jendela"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Aktifkan Gelap Otomatis"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Partisi data perangkat ini perlu dikonversi ke ext4 sebelum menggunakan opsi developer 16KB. Integritas software tidak dapat dijamin dalam mode ini, dan data apa pun yang disimpan di ponsel saat bootloader dibuka kuncinya dapat berpotensi terkena bahaya. Mengaktifkan opsi 16KB akan memerlukan mulai ulang sekali lagi setelah ini. Setelah Anda berada dalam mode ini, Anda dapat beralih antara mode 4KB dan 16KB dengan sekali mulai ulang. Beberapa fitur akan dinonaktifkan dalam mode ini, sehingga beberapa aplikasi mungkin tidak berfungsi. Untuk mengembalikan perangkat ke mode produksi, Anda perlu beralih kembali ke mode 4KB dan mengunci bootloader, yang akan mereset perangkat ke setelan pabrik. Setelah perangkat berhasil melakukan booting ke Android, nonaktifkan pembukaan kunci OEM di Opsi developer. Perangkat akan dihapus total dan sistem file akan diubah menjadi ext4 setelah konfirmasi. Setelah selesai, kembali untuk mengaktifkan 16KB lagi."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Hapus semua data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Gagal memformat ulang dan menghapus total partisi data ke ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Buka Kunci Bootloader Diperlukan"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Perangkat ini harus membuka kunci bootloader sebelum menggunakan opsi developer 16KB. Integritas software tidak dapat dijamin dalam mode ini, dan data apa pun yang disimpan di ponsel saat bootloader dibuka kuncinya dapat berpotensi terkena bahaya. Semua data dan setelan pengguna akan dihapus total saat mengaktifkan mode 16KB. Setelah bootloader dibuka kuncinya, mengaktifkan opsi 16KB akan memerlukan dua kali mulai ulang. Setelah Anda berada dalam mode ini, Anda dapat beralih antara mode 4KB dan 16KB dengan sekali mulai ulang. Beberapa fitur akan dinonaktifkan dalam mode ini, sehingga beberapa aplikasi mungkin tidak berfungsi. Untuk mengembalikan perangkat ke mode produksi, Anda perlu beralih kembali ke mode 4KB dan mengunci bootloader/OEM perangkat (yang akan mereset perangkat setelan pabrik). Buka kunci bootloader dan coba lagi. Anda dapat melihat petunjuk cara melakukannya di <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Menggunakan mode agnostik halaman 4KB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Anda berada dalam mode 4KB dari mode agnostik halaman. Integritas software tidak dapat dijamin dalam mode ini, dan data apa pun yang disimpan di ponsel saat bootloader dibuka kuncinya dapat berpotensi terkena bahaya. Beberapa fitur akan dinonaktifkan dalam mode ini, sehingga beberapa aplikasi mungkin tidak berfungsi. Agar dapat kembali masuk ke mode produksi, Anda harus mengunci bootloader perangkat. Ketuk untuk membaca selengkapnya."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Anda berada dalam mode 4KB dari mode agnostik halaman. Integritas software tidak dapat dijamin dalam mode ini, dan data apa pun yang disimpan di ponsel saat bootloader dibuka kuncinya dapat berpotensi terkena bahaya. Beberapa fitur akan dinonaktifkan dalam mode ini, sehingga beberapa aplikasi mungkin tidak berfungsi. Agar dapat kembali masuk ke mode produksi, Anda harus mengunci bootloader perangkat. Tindakan ini akan mereset perangkat ke setelan pabrik dan memulihkannya ke setelan produksi. Setelah perangkat berhasil melakukan booting ke Android, nonaktifkan pembukaan kunci OEM di Opsi developer. Jika perangkat gagal melakukan booting ke Android atau tidak stabil, flash ulang perangkat dengan setelan pabrik terbaru dari <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> atau gunakan <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> dan pilih \'Hapus Total Perangkat\', \'Kunci Bootloader\', dan \'Paksa Flash semua partisi\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Menggunakan mode agnostik halaman 16KB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Anda berada dalam mode 16 KB dari mode yang tidak terikat ukuran halaman. Integritas software tidak dapat dijamin dalam mode ini, dan data apa pun yang disimpan di ponsel saat bootloader dibuka kuncinya dapat berpotensi terkena bahaya. Beberapa fitur akan dinonaktifkan dalam mode ini, sehingga beberapa aplikasi mungkin tidak berfungsi. Agar dapat kembali masuk ke mode produksi, Anda harus beralih kembali ke mode 4 KB dan kemudian mengunci bootloader perangkat. Ketuk untuk membaca selengkapnya."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Anda berada dalam mode 16 KB dari mode yang tidak terikat ukuran halaman. Integritas software tidak dapat dijamin dalam mode ini, dan data apa pun yang disimpan di ponsel saat bootloader dibuka kuncinya dapat berpotensi terkena bahaya. Beberapa fitur akan dinonaktifkan dalam mode ini, sehingga beberapa aplikasi mungkin tidak berfungsi. Agar dapat kembali masuk ke mode produksi, Anda harus beralih kembali ke mode 4 KB dan kemudian mengunci bootloader perangkat. Tindakan ini akan mereset perangkat ke setelan pabrik dan memulihkannya ke setelan produksi. Setelah perangkat berhasil melakukan booting ke Android, nonaktifkan pembukaan kunci OEM di Opsi developer. Jika perangkat gagal melakukan booting ke Android atau tidak stabil, flash ulang perangkat dengan setelan pabrik terbaru dari <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> atau gunakan <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> dan pilih \'Hapus Total Perangkat\', \'Kunci Bootloader\', dan \'Paksa Flash semua partisi\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Mode Agnostik halaman 16KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Baca selengkapnya"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Pengendali laporan bug"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Pilih screensaver yang akan ditampilkan di layar saat tablet dipasang ke dok. Perangkat Anda mungkin menggunakan lebih banyak daya saat screensaver digunakan."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Sesuaikan"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Sesuaikan <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Perlu memulai ulang untuk mengaktifkan dukungan bentuk bebas."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Perlu memulai ulang untuk memaksa mode desktop di layar sekunder."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Perlu memulai ulang untuk mengaktifkan dukungan windowing freeform versi lama."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Perlu memulai ulang untuk mengubah dukungan windowing freeform."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Perlu memulai ulang untuk memaksa windowing freeform di layar sekunder."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Mulai ulang sekarang"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Mulai ulang nanti"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio Spasial"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 7aed05a..fc1702c 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Þetta er nauðsynlegt þar sem kveikt er á auðkennisathugun"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Valkostir"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Aðgengi"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Vélbúnaðarlyklaborð"</string>
- <string name="show_ime" msgid="4334255501724746849">"Nota skjályklaborð"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Haltu því á skjánum meðan vélbúnaðarlyklaborðið er virkt"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Endurkastslyklar"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Lyklaborðið hunsar snöggan endurtekinn innslátt á sama lykilinn innan <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Hægir lyklar"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Halda samt áfram"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Hætta við"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Stillingar stækkunar"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Færðu stækkunarglerið með 1 fingri"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Dragðu með 1 fingri til að fara um skjáinn"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Færðu stækkaða svæðið með því að draga einn fingur."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Færðu stækkaða svæðið með því að draga tvo fingur."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ótiltækt þegar aðeins hluti skjásins er stækkaður"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Ýttu á hnapp til að stækka"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Auktu aðdráttinn á skjánum til að stækka efnið"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Gerðu eftirfarandi til að auka aðdrátt:</b><br/> {0,number,integer}. Notaðu flýtileið til að hefja stækkun<br/> {1,number,integer}. Ýttu á skjáinn<br/> {2,number,integer}. Dragðu 2 fingur til að ferðast um skjáinn<br/> {3,number,integer}. Færðu tvo fingur saman til að stilla aðdráttinn<br/> {4,number,integer}. Notaðu flýtileið til að hætta stækkun<br/><br/> <b>Til að auka aðdrátt tímabundið:</b><br/> {0,number,integer}. Gakktu úr skugga um að stækkunaraðferðin sé stillt til að birtast á öllum skjánum<br/> {1,number,integer}. Notaðu flýtileið til að hefja stækkun<br/> {2,number,integer}. Haltu fingri hvar sem er á skjánum<br/> {3,number,integer}. Dragðu fingurinn til að ferðast um skjáinn<br/> {4,number,integer}. Lyftu fingri til að hætta stækkun"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Gerðu eftirfarandi til að auka aðdrátt:</b><br/> {0,number,integer}. Notaðu flýtileið til að hefja stækkun<br/> {1,number,integer}. Ýttu á skjáinn<br/> {2,number,integer}. Dragðu 2 fingur til að fara um skjáinn<br/> {3,number,integer}. Færðu 2 fingur saman til að stilla aðdráttinn<br/> {4,number,integer}. Notaðu flýtileið til að stöðva stækkun<br/><br/> Þú getur líka aukið aðdrátt tímabundið og fleira."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Gerðu eftirfarandi til að auka aðdrátt:</b><br/> {0,number,integer}. Notaðu flýtileið til að hefja stækkun<br/> {1,number,integer}. Ýttu á skjáinn<br/> {2,number,integer}. Dragðu 1 eða 2 fingur til að fara um skjáinn<br/> {3,number,integer}. Færðu 2 fingur saman til að stilla aðdráttinn<br/> {4,number,integer}. Notaðu flýtileið til að stöðva stækkun<br/><br/> Þú getur líka aukið aðdrátt tímabundið og fleira."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Þegar kveikt er á stækkun geturðu aukið aðdráttinn á skjánum.\n\n"<b>"Til að stækka"</b>" skaltu hefja stækkun og ýta svo hvar sem er á skjáinn.\n"<ul><li>"Dragðu með tveimur eða fleiri fingrum til að fletta"</li>\n<li>"Færðu tvo eða fleiri fingur saman til að stilla aðdrátt"</li></ul>\n\n<b>"Til að stækka tímabundið"</b>" skaltu hefja stækkun og halda síðan fingri hvar sem er á skjánum.\n"<ul><li>"Dragðu til að fara um skjáinn"</li>\n<li>"Lyftu fingrinum til að minnka aðdrátt"</li></ul>\n\n"Þú getur ekki stækkað á lyklaborðinu eða yfirlitsstikunni."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Síða <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> af <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Flýtileið fyrir aðgengishnapp"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Búðu til stillingu"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Sérsniðin"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Takmarka truflanir"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Kveikja á „Ónáðið ekki“"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Vekjarar og hljóð efnis mega trufla"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Stilla áætlun"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Áætlun"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> klst. og <xliff:g id="MINUTES">%2$d</xliff:g> mín."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Kveikja sjálfkrafa"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Áætlun"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Þagga í símanum á vissum tíma"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Stilla reglur fyrir „Ónáðið ekki“"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"opna tilkynningu"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Leyfa þöggun tilkynninga"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Tilkynningapunktur á forritstákni"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Blöðrur"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Blöðrur"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Setja þetta samtal í blöðru"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Öll"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Leyfa forritum að hnekkja"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Forrit sem mega trufla"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Veldu fleiri forrit"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Hulstur"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Rafhlaða"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Stillingasvæði"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Þvinga skjáborðsstillingu"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Þvinga tilraunaskjáborðsstillingu á öðrum skjá"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Virkja glugga á frjálsu sniði"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Virkja stuðning við glugga á frjálsu sniði."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Virkja glugga á frjálsu sniði á aukaskjá"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Virkja glugga á frjálsu sniði eingöngu á aukaskjá."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Kveikja á „Ekki hægt að breyta stærð“ í mörgum gluggum"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Leyfir forritum sem ekki er hægt að breyta stærðinni á að opnast í mörgum gluggum"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Hnekkja dökku"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Þú þarft að breyta gagnaskiptingu tækisins í ext4 áður en þú getur valið 16 kB-forritunarkostinn. Ekki er hægt að tryggja heilleika hugbúnaðarins í þessari stillingu og öll gögn símans kunna að vera í hættu á meðan ræsiforritið er ólæst. Virkjun 16 kB-valkostsins krefst þess að tækið sé endurræst einu sinni í viðbót. Þegar þú hefur virkjað þessa stillingu geturðu skipt á milli 4 kB- og 16 kB-stillinganna með því að endurræsa tækið einu sinni. Í þessum stillingum er slökkt á tilteknum eiginleikum og því munu einhver forrit ekki virka. Til að kveikja á framleiðslustillingu tækisins á ný þarftu að núllstilla tækið með því að skipta aftur yfir í 4 kB-stillingu og læsa ræsiforritinu. Slökktu síðan á „Taka ræsiforrit úr lás“ í forritunarkostunum þegar tækið hefur ræst Android. Að lokinni staðfestingu verður tækið straujað og skráarkerfinu breytt í ext4. Að því loknu skaltu koma hingað aftur til að virkja 16 kB á ný."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Eyða öllum gögnum"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Ekki tókst að endursníða og strauja gagnaskiptinguna til að breyta henni í ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Krefst þess að ræsiforritið sé tekið úr lás"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Þú þarft að taka ræsiforrit tækisins úr lás áður en þú getur valið 16 kB-forritunarkostinn. Ekki er hægt að tryggja heilleika hugbúnaðarins í þessari stillingu og öll gögn símans kunna að vera í hættu á meðan ræsiforritið er ólæst. Öll notandagögn og stillingar verða straujaðar þegar 16 kB-stillingin er virkjuð. Þegar ræsiforritið hefur verið tekið úr lás mun virkjun 16 kB-stillingarinnar krefjast þess að tækið sé endurræst tvisvar sinnum. Þegar þú hefur virkjað þessa stillingu geturðu skipt á milli 4 kB- og 16 kB-stillinganna með því að endurræsa tækið einu sinni. Í þessum stillingum er slökkt á tilteknum eiginleikum og því munu einhver forrit ekki virka. Til að kveikja á framleiðslustillingu tækisins á ný þarftu að núllstilla tækið með því að skipta aftur yfir í 4 kB-stillingu og læsa ræsiforritinu. Taktu ræsiforritið úr lás og reyndu aftur. Leiðbeiningar um hvernig þetta er framkvæmt má finna á <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Notar 4 kB-stillingu óháðrar síðustillingar"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Þú ert að nota 4 kB-stillingu óháðrar síðustillingar. Ekki er hægt að tryggja heilleika hugbúnaðarins í þessari stillingu og öll gögn símans kunna að vera í hættu á meðan ræsiforritið er ólæst. Í þessum stillingum er slökkt á tilteknum eiginleikum og því munu einhver forrit ekki virka. Til að kveikja á framleiðslustillingu tækisins á ný þarfðu að læsa ræsiforriti tækisins. Ýttu til að lesa meira."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Þú ert að nota 4 kB-stillingu óháðrar síðustillingar. Ekki er hægt að tryggja heilleika hugbúnaðarins í þessari stillingu og öll gögn símans kunna að vera í hættu á meðan ræsiforritið er ólæst. Í þessum stillingum er slökkt á tilteknum eiginleikum og því munu einhver forrit ekki virka. Til að kveikja á framleiðslustillingu tækisins á ný þarfðu að læsa ræsiforriti tækisins. Við þetta mun tækið núllstillast og kveikja á framleiðslustillingu á ný. Slökktu síðan á „Taka ræsiforrit úr lás“ í forritunarkostunum þegar tækið hefur ræst Android. Ef tækið er óstöðugt eða því tekst ekki að ræsa Android skaltu uppfæra tækið aftur með nýjustu útgáfu núllstillingarmynda af <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> eða fara á <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> og velja „Strauja tæki“, „Læsa ræsiforriti“ og „Þvinga uppfærslu allra deilda“."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Notar 16 kB-stillingu óháðrar síðustillingar"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Þú ert að nota 16 kB-stillingu óháðrar síðustillingar. Ekki er hægt að tryggja heilleika hugbúnaðarins í þessari stillingu og öll gögn símans kunna að vera í hættu á meðan ræsiforritið er ólæst. Í þessum stillingum er slökkt á tilteknum eiginleikum og því munu einhver forrit ekki virka. Til að kveikja á framleiðslustillingu tækisins á ný þarftu að skipta aftur yfir í 4 kB-stillingu og læsa ræsiforriti tækisins. Ýttu til að lesa meira."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Þú ert að nota 16 kB-stillingu óháðrar síðustillingar. Ekki er hægt að tryggja heilleika hugbúnaðarins í þessari stillingu og öll gögn símans kunna að vera í hættu á meðan ræsiforritið er ólæst. Í þessum stillingum er slökkt á tilteknum eiginleikum og því munu einhver forrit ekki virka. Til að kveikja á framleiðslustillingu tækisins á ný þarftu að skipta aftur yfir í 4 kB-stillingu og læsa ræsiforriti tækisins. Við þetta mun tækið núllstillast og kveikja á framleiðslustillingu á ný. Slökktu síðan á „Taka ræsiforrit úr lás“ í forritunarkostunum þegar tækið hefur ræst Android. Ef tækið er óstöðugt eða því tekst ekki að ræsa Android skaltu uppfæra tækið aftur með nýjustu útgáfu núllstillingarmynda af <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> eða fara á <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> og velja „Strauja tæki“, „Læsa ræsiforriti“ og „Þvinga uppfærslu allra skiptinga“."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 kB-stilling óháðrar síðustillingar"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Lesa meira"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Meðhöndlun villutilkynningar"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Veldu það sem á að birta á skjánum á meðan spjaldtölvan er í dokkunni. Tækið kann að nota meiri orku þegar skjávarinn er notaður."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Sérsníða"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Sérsníða <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Endurræsingar er krafist til að kveikja á stuðningi við Freeform."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Endurræsingar er krafist til að þvinga skjáborðsstillingu á öðrum skjáum."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Endurræsingar er krafist fyrir virkjun stuðnings við eldri glugga á frjálsu sniði."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Endurræsingar er krafist fyrir breytingu á stuðningi við glugga á frjálsu sniði."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Endurræsingar er krafist fyrir þvingun glugga á frjálsu sniði á aukaskjáum."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Endurræsa núna"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Endurræsa seinna"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Rýmishljóð"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 13560a3..dab894b 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Volto e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Volto, impronta e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Volto, impronte e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"È necessario perché la verifica dell\'identità è attiva"</string>
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Sblocco Remote Authenticator"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch aggiunto"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configura l\'orologio"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opzioni"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilità"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Tastiera fisica"</string>
- <string name="show_ime" msgid="4334255501724746849">"Usa tastiera sullo schermo"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Tienila sullo schermo quando è attiva la tastiera fisica"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Tasti rimbalzati"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"La tastiera ignora pressioni ripetute velocemente dello stesso tasto entro <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Tasti lenti"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Crea una modalità"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizzato"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitare le interruzioni"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Attiva Non disturbare"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Sveglie e suoni multimediali possono interrompere"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Imposta una programmazione"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programmazione"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Attiva automaticamente"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Pianificazione"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Disattiva la suoneria in orari specifici"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Imposta regole Non disturbare"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"viene aperta la notifica"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Consenti posticipazione delle notifiche"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Indicatore di notifica su icona app"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Bundle di notifiche"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bolle"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bolle"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostra conversazione sotto forma di bolla"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Tutti"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Consenti alle app di ignorarla"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"App che possono interrompere"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Seleziona altre app"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Custodia"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Riquadro delle impostazioni"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Forza la modalità desktop"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forza la modalità desktop sperimentale su display secondari"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Attiva finestre a forma libera"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Attiva il supporto delle finestre a forma libera."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Attiva finestre a forma libera sul secondo display"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Attiva le finestre a forma libera solo sul secondo display."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Attiva app non ridimensionabili in multi-finestra"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Consente la presenza di app non ridimensionabili in modalità multi-finestra"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Esegui override modalità Buio forzata"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"La partizione dei dati del dispositivo deve essere convertita in ext4 prima di usare l\'opzione sviluppatore a 16 kB. Non è possibile garantire l\'integrità del software in questa modalità e i dati archiviati sullo smartphone potrebbero essere a rischio finché il bootloader è sbloccato. Se attivi l\'opzione a 16 kB, sarà necessario un ulteriore riavvio. Una volta che sarà attiva questa modalità, potrai passare dalla modalità a 4 kB a quella a 16 kB con un solo riavvio. Alcune funzionalità verranno disattivate in queste modalità, pertanto alcune applicazioni potrebbero non funzionare. Per far tornare il dispositivo in modalità di produzione, dovrai tornare alla modalità a 4 kB e bloccare il bootloader, il che ripristina i dati di fabbrica del dispositivo. Dopo che Android viene avviato correttamente sul dispositivo, disattiva lo sblocco OEM nelle Opzioni sviluppatore. Tutti i dati verranno cancellati dal dispositivo e il file system verrà convertito in ext4 dopo la conferma. Quando termina l\'operazione, riabilita nuovamente la modalità a 16 kB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Resetta tutti i dati"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Impossibile riformattare e cancellare la partizione di dati in ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Sblocco bootloader richiesto"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"È necessario sbloccare il bootloader del dispositivo prima di usare l\'opzione sviluppatore a 16 kB. Non è possibile garantire l\'integrità del software in questa modalità e i dati archiviati sullo smartphone potrebbero essere a rischio finché il bootloader è sbloccato. Tutti i dati utente e le impostazioni verranno cancellati quando attivi la modalità a 16 kB. Dopo aver sbloccato il bootloader, l\'attivazione dell\'opzione a 16 kB richiederà due riavvii. Una volta che sarà attiva questa modalità, potrai passare dalla modalità a 4 kB a quella a 16 kB con un solo riavvio. Alcune funzionalità verranno disattivate in queste modalità, pertanto alcune applicazioni potrebbero non funzionare. Per far tornare il dispositivo in modalità di produzione, dovrai tornare alla modalità a 4 kB e bloccare il bootloader del dispositivo, il che ripristina i dati di fabbrica del dispositivo. Sblocca il bootloader e riprova. Puoi consultare le istruzioni su come fare all\'indirizzo <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Modalità indipendente dalla pagina a 4 kB in uso"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Hai attivato l\'opzione a 4 kB della modalità indipendente dalla pagina. Non è possibile garantire l\'integrità del software in questa modalità e i dati archiviati sullo smartphone potrebbero essere a rischio finché il bootloader è sbloccato. Alcune funzionalità verranno disattivate in queste modalità, pertanto alcune applicazioni potrebbero non funzionare. Per tornare alla modalità di produzione, devi bloccare il bootloader del dispositivo. Tocca per leggere altro."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Hai attivato l\'opzione a 4 kB della modalità indipendente dalla pagina. Non è possibile garantire l\'integrità del software in questa modalità e i dati archiviati sullo smartphone potrebbero essere a rischio finché il bootloader è sbloccato. Alcune funzionalità verranno disattivate in queste modalità, pertanto alcune applicazioni potrebbero non funzionare. Per tornare alla modalità di produzione, devi bloccare il bootloader del dispositivo. Questo eseguirà nuovamente il ripristino dei dati di fabbrica del dispositivo e ripristinerà le impostazioni di produzione. Dopo che Android viene avviato correttamente sul dispositivo, disattiva lo sblocco OEM nelle Opzioni sviluppatore. Se l\'avvio di Android sul dispositivo non riesce o è instabile, esegui nuovamente il flashing del dispositivo con le immagini del produttore più recenti da <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> o usa <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> e seleziona \"Cancella dati dispositivo\", \"Blocca bootloader\" e \"Esegui il flash forzato di tutte le partizioni\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Modalità indipendente dalla pagina a 16 kB in uso"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Hai attivato l\'opzione a 16 kB della modalità page-agnostic. Non è possibile garantire l\'integrità del software in questa modalità e i dati archiviati sullo smartphone potrebbero essere a rischio finché il bootloader è sbloccato. Alcune funzionalità verranno disattivate in queste modalità, pertanto alcune applicazioni potrebbero non funzionare. Per tornare alla modalità di produzione, devi tornare alla modalità a 4 kB e bloccare il bootloader del dispositivo. Tocca per leggere altro."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Hai attivato l\'opzione a 16 kB della modalità page-agnostic. Non è possibile garantire l\'integrità del software in questa modalità e i dati archiviati sullo smartphone potrebbero essere a rischio finché il bootloader è sbloccato. Alcune funzionalità verranno disattivate in queste modalità, pertanto alcune applicazioni potrebbero non funzionare. Per tornare alla modalità di produzione, devi tornare alla modalità a 4 kB e bloccare il bootloader del dispositivo. Questo eseguirà nuovamente il ripristino dei dati di fabbrica del dispositivo e ripristinerà le impostazioni di produzione. Dopo che Android viene avviato correttamente sul dispositivo, disattiva lo sblocco OEM nelle Opzioni sviluppatore. Se l\'avvio di Android sul dispositivo non riesce o è instabile, esegui nuovamente il flashing del dispositivo con le immagini del produttore più recenti da <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> o usa <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> e seleziona \"Cancella dati dispositivo\", \"Blocca bootloader\" e \"Esegui il flash forzato di tutte le partizioni\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Modalità indipendente dalla pagina a 16 kB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Leggi tutto"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Gestore segnalazione di bug"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Scegli cosa visualizzare sullo schermo quando il tablet è agganciato alla base. Il dispositivo potrebbe consumare più energia quando viene usato un salvaschermo."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personalizza"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personalizza <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"È necessario riavviare per attivare il supporto del formato libero."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"È necessario riavviare per forzare la modalità desktop su display secondari."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"È necessario riavviare per abilitare il supporto delle finestre a forma libera legacy."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"È necessario riavviare per modificare il supporto delle finestre a forma libera."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"È necessario riavviare per forzare le finestre a forma libera sul secondo display."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Riavvia ora"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Riavvia più tardi"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio spaziale"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 2820e2f..d509e34 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"הפנים וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"הפנים, טביעת האצבע וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"הפנים, טביעות האצבע וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"זה נחוץ כי בדיקת הזהות מופעלת"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"אפשרויות"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"נגישות"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"מקלדת פיזית"</string>
- <string name="show_ime" msgid="4334255501724746849">"שימוש במקלדת שמופיעה במסך"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"תישאר במסך בזמן שהמקלדת הפיזית פעילה"</string>
<string name="bounce_keys" msgid="7419450970351743904">"מקשים חוזרים"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"המקלדת מתעלמת מלחיצות מהירות חוזרות על אותו המקש שנעשות תוך <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> אלפיות השנייה"</string>
<string name="slow_keys" msgid="2891452895499690837">"מקשים איטיים"</string>
@@ -2585,7 +2584,7 @@
<string name="battery_missing_link_message" msgid="6021565067124898074"></string>
<string name="battery_missing_link_a11y_message" msgid="3310971406602316323">"יש להקיש לקבלת מידע נוסף על השגיאה הזו"</string>
<string name="power_screen" msgid="4596900105850963806">"מסך"</string>
- <string name="power_cpu" msgid="1820472721627148746">"(CPU) מעבד"</string>
+ <string name="power_cpu" msgid="1820472721627148746">"מעבד (CPU)"</string>
<string name="power_flashlight" msgid="8993388636332573202">"פנס"</string>
<string name="power_camera" msgid="4778315081581293923">"מצלמה"</string>
<string name="power_gps" msgid="6352380895542498164">"GPS"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"יצירה של מצב"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"בהתאמה אישית"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"הגבלת הפרעות"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"הפעלת מצב \'נא לא להפריע\'"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"שעונים מעוררים וצלילי מדיה יכולים להפריע"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"הגדרת לוח זמנים"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"לוח זמנים"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> שע\', <xliff:g id="MINUTES">%2$d</xliff:g> דק\'"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"הפעלה אוטומטית"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"לוח זמנים"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"השתקת הטלפון בזמנים מסוימים"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"הגדרת כללים ל\'נא לא להפריע\'"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"פתיחת ההתראה"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"הפעלת האפשרות להעביר התראות למצב \'נודניק\'"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"סימן ההתראות בסמל האפליקציה"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"חבילות התראות"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"בועות"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"בועות"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"הוספת בועה לשיחה"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"הכול"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ניתן לאפשר לאפליקציות לבטל הגדרה זו"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"אפליקציות שיכולות להפריע"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"בחירת אפליקציות נוספות"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"נרתיק"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"סוללה"</string>
<string name="settings_panel_title" msgid="346363079938069215">"חלונית ההגדרות"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"אילוץ מצב שולחן עבודה"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"אילוץ מצב שולחן עבודה ניסיוני במסכים משניים"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"הפעלת האפשרות לשנות את הגודל והמיקום של החלונות"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"הפעלת תמיכה בשינוי הגודל והמיקום של החלונות."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"הפעלת שינוי הגודל והמיקום של החלונות במסך השני"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"הפעלת שינוי הגודל והמיקום של החלונות רק במסך השני."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"הפעלת אפליקציות שלא ניתן לשנות את גודלן בריבוי חלונות"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ההגדרה מאפשרת להפעיל בריבוי חלונות אפליקציות שלא ניתן לשנות את גודלן"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"שינוי התכונה SmartDark"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"צריך להמיר את מחיצת הנתונים של המכשיר הזה ל-ext4 לפני השימוש באפשרות למפתחים של 16KB. לא ניתן להבטיח את תקינות התוכנה במצב הזה. כל הנתונים שמאוחסנים בטלפון בזמן שתוכנת האתחול לא נעולה עלולים להיות בסיכון. לאחר הפעלת האפשרות של 16KB תידרש הפעלה נוספת מחדש. מהמצב הזה, אפשר לעבור בין מצב 4KB למצב 16KB בהפעלה אחת מחדש. חלק מהתכונות יושבתו במצבים האלה, כך שחלק מהאפליקציות לא יפעלו. כדי להחזיר את המכשיר למצב ייצור, עליך לחזור למצב 4KB ולנעול את תוכנת האתחול. המכשיר יאופס להגדרות המקוריות. אחרי שהמכשיר מאותחל ל-Android, צריך להשבית את מצב OEM באפשרויות למפתחים. לאחר האישור, הנתונים במכשיר יאופסו ומערכת הקבצים תשתנה ל-ext4. לאחר השלמת הפעולה הזו, צריך לחזור כדי להפעיל את מצב 16KB שוב."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"מחיקת כל הנתונים"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"הניסיון לפרמט מחדש את המכשיר ולאפס את מחיצת הנתונים ל-ext4 נכשל."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"צריך לבטל את הנעילה של תוכנת האתחול"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"לפני השימוש באפשרות למפתחים של 16KB, צריך לבטל את הנעילה של תוכנת האתחול במכשיר הזה. לא ניתן להבטיח את תקינות התוכנה במצב הזה. כל הנתונים שמאוחסנים בטלפון בזמן שתוכנת האתחול לא נעולה עלולים להיות בסיכון. כל נתוני המשתמש וההגדרות יאופסו בהפעלת מצב 16KB. לאחר ביטול הנעילה של תוכנת האתחול יידרשו שתי הפעלות מחדש כדי שמצב 16KB ייכנס לתוקף. מהמצב הזה, אפשר לעבור בין מצב 4KB למצב 16KB בהפעלה אחת מחדש. חלק מהתכונות יושבתו במצבים האלה, כך שחלק מהאפליקציות לא יפעלו. כדי להחזיר את המכשיר למצב ייצור, צריך לחזור למצב 4KB ואז לנעול את תוכנת האתחול או את מצב ה-OEM של המכשיר (המכשיר יאופס להגדרות המקוריות). צריך לבטל את הנעילה של תוכנת האתחול ולנסות שוב. הוראות לביצוע הפעולה זמינות בכתובת <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"שימוש במצב לא מותאם לדף של 4KB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"הפעילות שלך מתרחשת במצב לא מותאם לדף של 4KB. לא ניתן להבטיח את תקינות התוכנה במצב הזה. כל הנתונים שמאוחסנים בטלפון בזמן שתוכנת האתחול לא נעולה עלולים להיות בסיכון. חלק מהתכונות יושבתו במצבים האלה, כך שחלק מהאפליקציות לא יפעלו. כדי להיכנס שוב למצב ייצור, עליך לנעול את תוכנת האתחול של המכשיר. אפשר להקיש כדי לקרוא עוד."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"הפעילות שלך מתרחשת במצב 4KB השייך למצב שבו גודל הדף לא נקבע מראש על ידי מערכת ההפעלה. לא ניתן להבטיח את תקינות התוכנה במצב הזה. כל הנתונים שמאוחסנים בטלפון בזמן שתוכנת האתחול לא נעולה עלולים להיות בסיכון. חלק מהתכונות יושבתו במצבים האלה, כך שחלק מהאפליקציות לא יפעלו. כדי להיכנס שוב למצב ייצור, עליך לנעול את תוכנת האתחול של המכשיר. הפעולה הזו תאפס שוב את המכשיר להגדרות המקוריות ותשחזר את הגדרות הייצור. אחרי שהמכשיר מאותחל ל-Android, צריך להשבית את מצב OEM באפשרויות למפתחים. אם לא ניתן לאתחל את המכשיר ל-Android או שהוא לא יציב, צריך לעדכן במכשיר את גיבויי הקושחה בכתובת <a href=\"https://developers.google.com/android/images\">https://developers .google.com/android/images</a> או להשתמש ב-<a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ולבחור באפשרות \'איפוס נתונים במכשיר\' > \'נעילת תוכנת האתחול\' > \'כפיית עדכון על כל המחיצות\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"שימוש במצב מותאם לדף של 16KB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"הפעילות שלך מתרחשת במצב שמסתגל לגודל דף של 16KB. לא בטוח שהתוכנה תעבוד כראוי במצב הזה, וכל הנתונים שמאוחסנים בטלפון עלולים להיות בסיכון בזמן שתוכנת האתחול לא נעולה. חלק מהתכונות יושבתו במצבים האלה, כך שחלק מהאפליקציות לא יפעלו. כדי להיכנס שוב למצב ייצור, עליך לחזור למצב 4KB ואז לנעול את תוכנת האתחול של המכשיר. אפשר להקיש כדי לקרוא עוד."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"הפעילות שלך מתרחשת במצב שמסתגל לגודל דף של 16KB. לא בטוח שהתוכנה תעבוד כראוי במצב הזה, וכל הנתונים שמאוחסנים בטלפון עלולים להיות בסיכון בזמן שתוכנת האתחול לא נעולה. חלק מהתכונות יושבתו במצבים האלה, כך שחלק מהאפליקציות לא יפעלו. כדי להיכנס שוב למצב ייצור, עליך לחזור למצב 4KB ואז לנעול את תוכנת האתחול של המכשיר. הפעולה הזו תאפס שוב את המכשיר להגדרות המקוריות ותשחזר את הגדרות הייצור. אחרי שהמכשיר מאותחל ל-Android, צריך להשבית את מצב OEM באפשרויות למפתחים. אם לא ניתן לאתחל את המכשיר ל-Android או שהוא לא יציב, צריך לעדכן במכשיר את גיבויי הקושחה בכתובת <a href=\"https://developers.google.com/android/images\">https://developers .google.com/android/images</a> או להשתמש ב-<a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ולבחור באפשרות \'איפוס נתונים במכשיר\' > \'נעילת תוכנת האתחול\' > \'כפיית עדכון על כל המחיצות\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"מצב לא מותאם לדף של 16KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"עוד פרטים"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"טיפול בדוחות על באגים"</string>
@@ -5185,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"אפשר לבחור מה יוצג במסך כשהטאבלט בעגינה. יכול להיות שהמכשיר ינצל יותר אנרגיה בזמן השימוש בשומר מסך."</string>
<string name="customize_button_title" msgid="1110284655990203359">"התאמה אישית"</string>
<string name="customize_button_description" msgid="7440248477266126231">"התאמה אישית של <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"צריך להפעיל מחדש כדי להפעיל את התמיכה במצב החופשי."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"צריך להפעיל מחדש כדי לאלץ את הצגת הגרסה למחשב במסכים המשניים."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"צריך להפעיל מחדש כדי להפעיל תמיכה בשינוי הגודל והמיקום של החלונות מדור קודם."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"צריך להפעיל מחדש כדי לשנות את התמיכה בשינוי הגודל והמיקום של החלונות."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"צריך להפעיל מחדש כדי לאלץ את שינוי הגודל והמיקום של החלונות רק במסך השני."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"להפעיל מחדש עכשיו"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"להפעיל מחדש מאוחר יותר"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"אודיו מרחבי"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index abaf629..68da885 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"顔、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"顔、指紋、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"顔、指紋、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"本人確認が ON になっているため、これが必要です"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"アプリをインストールする"</b>\n"スペース内で非公開にするアプリをインストールします"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"注意事項"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"スペースをロックするとアプリが停止する"</b>\n"スペースをロックするとアプリが停止して、アプリからの通知が届かなくなります"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"プライベート スペースは、バックグラウンドでの実行や重要な通知の送信が必要なアプリ(医療アプリなど)には適していません。その理由は、スペースがロックされている場合、通知とバックグラウンド アクティビティが停止するためです。\n\nプライベート スペースがロックされている場合、プライベート スペース内のアプリは権限マネージャ、プライバシー ダッシュボード、その他の設定に表示されません。\n\nプライベート スペースを新しいデバイスに移動することはできません。別のデバイスで使用したい場合は、別のプライベート スペースを設定する必要があります。\n\n誰かがあなたのデバイスをパソコンに接続したり、あなたのデバイスに有害なアプリをインストールしたりすると、そのユーザーもあなたのプライベート スペースにアクセスできる可能性があります。"</string>
- <string name="private_space_settings_footer_text" msgid="3742468470394835356">"プライベート スペースは、バックグラウンドでの実行や重要な通知の送信が必要なアプリ(医療アプリなど)には適していません。その理由は、スペースがロックされている場合、通知とバックグラウンド アクティビティが停止するためです。\n\nプライベート スペースがロックされている場合、プライベート スペース内のアプリは権限マネージャ、プライバシー ダッシュボード、その他の設定に表示されません。\n\nプライベート スペースを新しいデバイスに復元することはできません。別のデバイスで使用したい場合は、別のスペースを設定する必要があります。\n\n誰かがあなたのデバイスをパソコンに接続したり、あなたのデバイスに悪意のあるアプリをインストールしたりすると、そのユーザーもあなたのプライベート スペースにアクセスできる可能性があります。"</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"プライベート スペースは、バックグラウンドでの実行や重要な通知の送信が必要なアプリ(医療アプリなど)には適していません。その理由は、スペースがロックされている場合、通知とバックグラウンド アクティビティが停止するためです。\n\nプライベート スペースがロックされている場合、プライベート スペース内のアプリは権限マネージャ、プライバシー ダッシュボード、その他の設定画面に表示されません。\n\nプライベート スペースはデバイスごとに設定する必要があり、新しいデバイスに移動することはできません。\n\n他のユーザーによってデバイスがパソコンに接続されたり、有害なアプリをインストールされたりすると、プライベート スペースにアクセスされる可能性があります。"</string>
+ <string name="private_space_settings_footer_text" msgid="3742468470394835356">"プライベート スペースは、バックグラウンドでの実行や重要な通知の送信が必要なアプリ(医療アプリなど)には適していません。その理由は、スペースがロックされている場合、通知とバックグラウンド アクティビティが停止するためです。\n\nプライベート スペースがロックされている場合、プライベート スペース内のアプリは権限マネージャ、プライバシー ダッシュボード、その他の設定画面に表示されません。\n\nプライベート スペースはデバイスごとに設定する必要があり、新しいデバイスに復元することはできません。\n\n他のユーザーによってデバイスがパソコンに接続されたり、有害なアプリをインストールされたりすると、プライベート スペースにアクセスされる可能性があります。"</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"プライベート スペースの詳細"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"しばらくお待ちください"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"プライベート スペースを設定しています…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"オプション"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ユーザー補助"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"物理キーボード"</string>
- <string name="show_ime" msgid="4334255501724746849">"画面キーボードを使用"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"物理キーボードが有効になっていても画面に表示させます"</string>
<string name="bounce_keys" msgid="7419450970351743904">"バウンスキー"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ミリ秒以内にキーボードの同じキーが連続で押された場合は、その操作を無視します"</string>
<string name="slow_keys" msgid="2891452895499690837">"スローキー"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"モードの作成"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"カスタム"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"割り込みを制限する"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"サイレント モードを ON にする"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"アラームとメディア サウンドが割り込み可能"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"スケジュールを設定してください"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"スケジュールを設定"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> 時間 <xliff:g id="MINUTES">%2$d</xliff:g> 分"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"自動的に ON"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"スケジュール"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"一時的にスマートフォンを消音"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"サイレント モード ルールの設定"</string>
@@ -3541,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"通知を開く"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"通知のスヌーズを許可する"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"アプリアイコン上の通知ドット"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"バブル"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"バブル"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"この会話をバブルで表示"</string>
@@ -3833,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"すべて"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"アプリのオーバーライドを許可"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"割り込み可能なアプリ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"他のアプリを選択"</string>
@@ -4857,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"ケース"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"バッテリー"</string>
<string name="settings_panel_title" msgid="346363079938069215">"設定パネル"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"デスクトップ モードに強制的に切り替え"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"セカンダリ ディスプレイで試験運用版デスクトップ モードに強制的に切り替えます"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"フリーフォーム ウィンドウを有効にする"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"フリーフォーム ウィンドウのサポートを有効にします。"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"2 つ目のディスプレイでフリーフォーム ウィンドウを有効にする"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"2 つ目のディスプレイでのみフリーフォーム ウィンドウを有効にします。"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"マルチウィンドウでのサイズ変更不可を有効にする"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"サイズ変更できないアプリをマルチウィンドウでも使用可能にします"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"フォースダークのオーバーライド"</string>
@@ -4926,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16 KB デベロッパー オプションを使用するには、このデバイスのデータ パーティションを ext4 に変換する必要があります。ソフトウェアの完全性はこのモードでは保証されないため、ブートローダーのロック解除中にスマートフォンに保存されているデータが失われる恐れがあります。16 KB オプションを有効にするには、この操作の後でもう 1 回再起動が必要です。このモードになったら、4 KB モードと 16 KB モードの間で切り替えることができます(切り替えのたびに 1 回再起動します)。これらのモードで無効になる機能があるため、一部のアプリが動作しないことがあります。デバイスを本番環境モードに戻すには、4 KB モードに戻してからブートローダーをロックする必要があります。この操作でデバイスは出荷時の設定にリセットされます。デバイスが Android で起動したら、開発者向けオプションで [OEM のロック解除] を無効にします。デバイスがワイプされて、確認後にファイルシステムが ext4 に変更されます。完了したら、戻って 16 KB を再度有効にしてください。"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"すべてのデータを消去"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"データ パーティションを ext4 に再フォーマットしてワイプすることができませんでした。"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"ブートローダーのロック解除が必要です"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"このデバイスで 16KB デベロッパー オプションを使用するには、ブートローダーのロックを解除しておく必要があります。ソフトウェアの完全性はこのモードでは保証されないため、ブートローダーのロック解除中にスマートフォンに保存されているデータが失われる恐れがあります。16KB モードの有効化中にユーザーデータと設定はすべてワイプされます。ブートローダーのロックが解除されたら、16KB オプションを有効にするために再起動が 2 回必要です。このモードになったら、4KB モードと 16KB モードの間で切り替えることができます(切り替えのたびに 1 回再起動します)。これらのモードで無効になる機能があるため、一部のアプリが動作しないことがあります。デバイスを本番環境モードに戻すには、4KB モードに戻してから、OEM / ブートローダーをロックする必要があります。この操作で、デバイスは出荷時の設定にリセットされます。ブートローダーのロックを解除してから、もう一度お試しください。この手順については、<a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> をご覧ください。"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4 KB のページ非依存モードを使用中"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"4KB のページ非依存モードです。ソフトウェアの完全性はこのモードでは保証されないため、ブートローダーのロック解除中にスマートフォンに保存されているデータが失われる恐れがあります。これらのモードで無効になる機能があるため、一部のアプリが動作しないことがあります。再び本番環境モードにするには、デバイスのブートローダーをロックする必要があります。タップすると詳細が表示されます。"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"4 KB のページ非依存モードです。ソフトウェアの完全性はこのモードでは保証されないため、ブートローダーのロック解除中にスマートフォンに保存されているデータが失われる恐れがあります。これらのモードで無効になる機能があるため、一部のアプリが動作しないことがあります。再び本番環境モードにするには、デバイスのブートローダーをロックする必要があります。この操作で、デバイスは再び出荷時の設定にリセットされ、製品版の設定に復元されます。デバイスが Android で起動したら、開発者向けオプションで [OEM のロック解除] を無効にします。デバイスが Android で起動しなかった場合や不安定な場合は、<a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> の最新のファクトリー イメージでデバイスの再書き込みを行うか、<a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> を使用し、[Wipe Device]、[Lock Bootloader]、[Force Flash all partitions] を選択してください。"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16 KB のページ非依存モードを使用中"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"16KB のページ非依存モードです。ソフトウェアの完全性はこのモードでは保証されないため、ブートローダーのロック解除中にスマートフォンに保存されているデータが失われる恐れがあります。これらのモードで無効になる機能があるため、一部のアプリが動作しないことがあります。再び本番環境モードにするには、4KB モードに戻してから、デバイスのブートローダーをロックする必要があります。タップすると詳細が表示されます。"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"16KB のページ非依存モードです。ソフトウェアの完全性はこのモードでは保証されないため、ブートローダーのロック解除中にスマートフォンに保存されているデータが失われる恐れがあります。これらのモードで無効になる機能があるため、一部のアプリが動作しないことがあります。再び本番環境モードにするには、4KB モードに戻してから、デバイスのブートローダーをロックする必要があります。この操作で、デバイスは再び出荷時の設定にリセットされ、製品版の設定に復元されます。デバイスが Android で起動したら、開発者向けオプションで [OEM のロック解除] を無効にします。デバイスが Android で起動しなかった場合や不安定な場合は、<a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> の最新のファクトリー イメージでデバイスの再書き込みを行うか、<a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> を使用し、[Wipe Device]、[Lock Bootloader]、[Force Flash all partitions] を選択してください。"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB のページ非依存モード"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"詳細"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"バグレポート ハンドラ"</string>
@@ -5183,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"タブレットが装着されているときに画面に表示するものを選択してください。スクリーン セーバーを使用すると、デバイスの電力使用量が増えることがあります。"</string>
<string name="customize_button_title" msgid="1110284655990203359">"カスタマイズ"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> をカスタマイズ"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"フリーフォームのサポートを有効にするには、再起動が必要です。"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"セカンダリ ディスプレイをデスクトップ モードに強制的に切り替えるには、再起動が必要です。"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"従来のフリーフォームのウィンドウ処理のサポートを有効にするには、再起動が必要です。"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"フリーフォームのウィンドウ処理のサポートを変更するには、再起動が必要です。"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"2 つ目のディスプレイでフリーフォームのウィンドウ処理を強制するには、再起動が必要です。"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"今すぐ再起動する"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"後で再起動する"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"空間オーディオ"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index d8b8db6..55ba416 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -77,7 +77,7 @@
<string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"სმენის აპარატის პარამეტრები"</string>
<string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"მალსახმობი, სმენის აპარატებთან თავსებადობა"</string>
<string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"წინასწარ დაყენებული"</string>
- <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"აუდიოლოგისტს არ დაუპროგრამებია წინასწარ დაყენებული პარამეტრ."</string>
+ <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"აუდიოლოგისტს არ დაუპროგრამებია წინასწარ დაყენებული პარამეტრები."</string>
<string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"წინასწარ დაყენებულის განახლება ვერ მოხერხდა"</string>
<string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"გამომავალი აუდიო"</string>
<string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"აუდიოს გამოსატანის შესახებ"</string>
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"დაემატა სახე და <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"დაემატა სახე, თითის ანაბეჭდი და <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"დაემატა სახე, თითის ანაბეჭდები და <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ეს საჭიროა, რადგან ვინაობის დადასტურებაა ჩართული"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"ვარიანტები"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"წვდომა"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"ფიზიკური კლავიატურა"</string>
- <string name="show_ime" msgid="4334255501724746849">"ეკრანული კლავიატურის გამოყენება"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"აქტიური ფიზიკური კლავიატურისას ეკრანზე შენარჩუნება"</string>
<string name="bounce_keys" msgid="7419450970351743904">"კლავიშების ასხლეტა"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"კლავიატურა აიგნორებს <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> მილიწამის განმავლობაში ერთსა და იმავე კლავიშზე სწრაფ, განმეორებით დაჭერებს"</string>
<string name="slow_keys" msgid="2891452895499690837">"ნელი კლავიშები"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"რეჟიმის შექმნა"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"მორგებული"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"წყვეტების შეზღუდვა"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"„არ შემაწუხოთ“ რეჟიმის ჩართვა"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"შეწყვეტა შეუძლია მაღვიძარებს და მედიის ხმებს"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"განრიგის დაყენება"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"განრიგი"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> სთ, <xliff:g id="MINUTES">%2$d</xliff:g> წთ"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"ავტომატურად ჩართვა"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"განრიგი"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"ტელეფონის დადუმება გარკვეულ მომენტებში"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"„არ შემაწუხოთ“ რეჟიმის წესების დაყენება"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"შეტყობინების გახსნა"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"შეტყობინებების ჩაჩუმების დაშვება"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"შეტყობ. ნიშნული აპის ხატულაზე"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"შეტყობინების ნაკრებები"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"ბუშტები"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ბუშტები"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ამ მიმოწერის ბუშტად ჩვენება"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ყველა"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"აპებისთვის უგულებელყოფის დაშვება"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"აპები, რომლებსაც შეწყვეტა შეუძლია"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"მეტი აპის არჩევა"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"ფუტლარი"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ბატარეა"</string>
<string name="settings_panel_title" msgid="346363079938069215">"პარამეტრების პანელი"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"დესკტოპის რეჟიმის იძულებით გააქტიურება"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"დესკტოპის ექსპერიმენტული რეჟიმის იძულებით გააქტიურება მეორეულ ეკრანებზე"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"თავისუფალი ფორმის ფანჯრების ჩართვა"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"მხარდაჭერის ჩართვა თავისუფალი ფორმის ფანჯრებისთვის"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"თავისუფალი ფორმის ფანჯრების ჩართვა მეორე ეკრანზე"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"თავისუფალი ფორმის ფანჯრების ჩართვა მხოლოდ დამატებით ეკრანზე."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ფიქსირებული ზომის აპის ჩართვა მრავალი ფანჯრის რეჟიმში"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ეს პარამეტრი საშუალებას იძლევა, აპი ზომის შეუცვლელად გამოჩნდეს მრავალი ფანჯრის რეჟიმში"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"გამუქების იძულების უგულებელყოფა"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"დეველოპერთა 16-კბაიტიანი პარამეტრების გამოყენებამდე ამ მოწყობილობის მონაცემთა დანაყოფი უნდა დაკონვერტირდეს ext4-ზე. აღნიშნულ რეჟიმში პროგრამული უზრუნველყოფის მთლიანობა ვერ იქნება გარანტირებული და სანამ ჩამტვირთავი განბლოკილია, ტელეფონში შენახული ნებისმიერი მონაცემი შეიძლება რისკის ქვეშ იყოს. 16-კბაიტიანი ვარიანტის გააქტიურება მოითხოვს კიდევ ერთ გადატვირთვას. ამ რეჟიმში შესვლის შემდეგ, 4-კბაიტიან და 16-კბაიტიან რეჟიმებს შორის შეგიძლიათ ერთი გადატვირთვით გადაერთოთ. ამ რეჟიმებში ზოგი ფუნქცია გაითიშება, რის გამოც გარკვეულმა აპლიკაციებმა შეიძლება არ იმუშაოს. მოწყობილობის წარმოების რეჟიმზე დასაბრუნებლად, უკან უნდა გადმოერთოთ 4-კბაიტიან რეჟიმზე და შემდეგ ჩაკეტოთ ჩამტვირთავი, რაც მოწყობილობას ქარხნულ პარამეტრებზე დააბრუნებს. მოწყობილობის Android-ში წარმატებით ჩატვირთვის შემდეგ, დეველოპერთა პარამეტრებში გათიშეთ OEM-ის მხრიდან განბლოკვა. თანხმობის შემდეგ, ეს მოწყობილობა ამოიშლება და ფაილის სისტემა შეიცვლება ext4-ზე. მას შემდეგ რაც ეს დასრულდება, გთხოვთ დაბრუნდეთ რათა თავიდან ჩართოთ 16-კბაიტიანი რეჟიმი."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"ყველა მონაცემის ამოშლა"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ფორმატის შეცვლა და მონაცემთა დანაყოფის ext4-მდე ამოშლა ვერ მოხერხდა."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"საჭიროა ჩამტვირთავის განბლოკვა"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"დეველოპერთა 16-კბაიტიანი პარამეტრების გამოყენებამდე ამ მოწყობილობის ჩამტვირთავი განბლოკილი უნდა იყოს. აღნიშნულ რეჟიმში პროგრამული უზრუნველყოფის მთლიანობა ვერ იქნება გარანტირებული და სანამ ჩამტვირთავი განბლოკილია, ტელეფონში შენახული ნებისმიერი მონაცემი შეიძლება რისკის ქვეშ იყოს. 16-კბაიტიანი რეჟიმის აქტივაციის შემდეგ, ყველა მომხმარებლის მონაცემები და პარამეტრები ამოიშლება. 16-კბაიტიან ვარიანტს ესაჭიროება ორჯერ გადატვირთვა ჩამტვირთავის განბლოკვის შემდეგ. ამ რეჟიმში შესვლის შემდეგ, 4-კბაიტიან და 16-კბაიტიან რეჟიმებს შორის შეგიძლიათ ერთი გადატვირთვით გადაერთოთ. ამ რეჟიმებში ზოგი ფუნქცია გაითიშება, რის გამოც გარკვეულმა აპლიკაციებმა შეიძლება არ იმუშაოს. მოწყობილობის წარმოების რეჟიმში დასაბრუნებლად, უკან უნდა გადმოერთოთ 4-კბაიტიან რეჟიმზე და შემდეგ ჩაკეტოთ OEM/ჩამტვირთავი (რაც მოწყობილობას ქარხნულ პარამეტრებზე დააბრუნებს). გთხოვთ, განბლოკოთ ჩამტვირთავი და ხელახლა ცადოთ. მოცემულ ბმულზე შეგიძლიათ იხილოთ ამ პროცესის ინსტრუქცია: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"იყენებთ 4-კბაიტიან გვერდ-აგნოსტიკურ რეჟიმს"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"თქვენ იმყოფებით გვერდ-აგნოსტიკური რეჟიმის 4-კბაიტიან რეჟიმში. აღნიშნულ რეჟიმში პროგრამული უზრუნველყოფის მთლიანობა ვერ იქნება გარანტირებული და სანამ ჩამტვირთავი განბლოკილია, ტელეფონში შენახული ნებისმიერი მონაცემი შეიძლება რისკის ქვეშ იყოს. ამ რეჟიმებში ზოგი ფუნქცია გაითიშება, რის გამოც გარკვეულმა აპლიკაციებმა შეიძლება არ იმუშაოს. მოწყობილობის წარმოების რეჟიმში თავიდან შესასვლელად უნდა ჩაკეტოთ მოწყობილობის ჩამტვირთავი. მეტის წასაკითხად შეეხეთ."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"თქვენ იმყოფებით გვერდ-აგნოსტიკური რეჟიმის 4-კბაიტიან რეჟიმში. აღნიშნულ რეჟიმში პროგრამული უზრუნველყოფის მთლიანობა ვერ იქნება გარანტირებული და სანამ ჩამტვირთავი განბლოკილია, ტელეფონში შენახული ნებისმიერი მონაცემი შეიძლება რისკის ქვეშ იყოს. ამ რეჟიმებში ზოგი ფუნქცია გაითიშება, რის გამოც გარკვეულმა აპლიკაციებმა შეიძლება არ იმუშაოს. მოწყობილობის წარმოების რეჟიმში თავიდან შესასვლელად უნდა ჩაკეტოთ მოწყობილობის ჩამტვირთავი. ეს მოწყობილობას კვლავ ქარხნულ პარამეტრებზე დააბრუნებს და შესაბამისად, აღადგენს მისი წარმოების პარამეტრებს. მოწყობილობის Android-ში წარმატებით ჩატვირთვის შემდეგ, დეველოპერთა პარამეტრებში გათიშეთ OEM-ის მხრიდან განბლოკვა. თუ მოწყობილობა ვერ იტვირთება Android-ში ან არასტაბილურია, განაახლეთ ჩაშენებული პროგრამული უზრუნველყოფა უახლესი ქარხნული იმიჯებით შემდეგი ბმულიდან: <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> და აირჩიეთ „მოწყობილობის წაშლა“, „ჩამტვირთავის ჩაკეტვა“ და „ყველა დანაყოფზე იძულებითი ჩატვირთვა“."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"იყენებთ 16-კბაიტიან გვერდ-აგნოსტიკურ რეჟიმს"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"თქვენ იმყოფებით გვერდ-აგნოსტიკური რეჟიმის 16-კილობაიტიან რეჟიმში. აღნიშნულ რეჟიმში პროგრამული უზრუნველყოფის მთლიანობა ვერ იქნება გარანტირებული და სანამ ჩამტვირთავი განბლოკილია, ტელეფონში შენახული ნებისმიერი მონაცემი შეიძლება რისკის ქვეშ იყოს. ამ რეჟიმებში ზოგი ფუნქცია გაითიშება, რის გამოც გარკვეულმა აპლიკაციებმა შეიძლება არ იმუშაოს. მოწყობილობის წარმოების რეჟიმში ხელახლა შესასვლელად უნდა გადაერთოთ 4-კილობაიტიან რეჟიმზე და შემდეგ ჩაკეტოთ მოწყობილობის ჩამტვირთავი. მეტის წასაკითხად შეეხეთ."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"თქვენ იმყოფებით გვერდ-აგნოსტიკური რეჟიმის 16-კილობაიტიან რეჟიმში. აღნიშნულ რეჟიმში პროგრამული უზრუნველყოფის მთლიანობა ვერ იქნება გარანტირებული და სანამ ჩამტვირთავი განბლოკილია, ტელეფონში შენახული ნებისმიერი მონაცემი შეიძლება რისკის ქვეშ იყოს. ამ რეჟიმებში ზოგი ფუნქცია გაითიშება, რის გამოც გარკვეულმა აპლიკაციებმა შეიძლება არ იმუშაოს. მოწყობილობის წარმოების რეჟიმში ხელახლა შესასვლელად უნდა გადაერთოთ 4-კილობაიტიან რეჟიმზე და შემდეგ ჩაკეტოთ მოწყობილობის ჩამტვირთავი. ეს მოწყობილობას კვლავ ქარხნულ პარამეტრებზე დააბრუნებს და შესაბამისად, აღადგენს მისი წარმოების პარამეტრებს. მოწყობილობის Android-ში წარმატებით ჩატვირთვის შემდეგ, დეველოპერთა პარამეტრებში გათიშეთ OEM-ის მხრიდან განბლოკვა. თუ მოწყობილობა ვერ იტვირთება Android-ში ან არასტაბილურია, განაახლეთ ჩაშენებული პროგრამული უზრუნველყოფა უახლესი ქარხნული იმიჯებით შემდეგი ბმულიდან: <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> და აირჩიეთ „მოწყობილობის წაშლა“, „ჩამტვირთავის ჩაკეტვა“ და „ყველა დანაყოფზე იძულებითი ჩატვირთვა“."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16-კბაიტიანი გვერდ-აგნოსტიკური რეჟიმი"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"ვრცლად"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"სისტემის ხარვეზის ანგარიშის დამმუშავებელი"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"აირჩიეთ, რას იხილავთ თქვენს ეკრანზე, როცა თქვენი ტაბლეტი დოკ-სადგურთან იქნება მიერთებული. ეკრანმზოგის გამოყენების შემთხვევაში თქვენმა მოწყობილობამ შეიძლება მეტი ენერგია გამოიყენოს."</string>
<string name="customize_button_title" msgid="1110284655990203359">"მორგება"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>-ის მორგება"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"თავისუფალი ფორმის მხარდაჭერის ჩასართავად საჭიროა გადატვირთვა."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"მეორეულ ეკრანზე დესკტოპ რეჟიმის იძულებით გასააქტიურებლად საჭიროა გადატვირთვა."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"მოძველებული თავისუფალი ფორმის ფანჯრების მხარდაჭერის ჩასართავად საჭიროა გადატვირთვა."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"თავისუფალი ფანჯრების მხარდაჭერის შესაცვლელად საჭიროა გადატვირთვა."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"დამატებით ეკრანებზე თავისუფალი ფორმის ფანჯრების გასააქტიურებლად საჭიროა გადატვირთვა."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ახლავე გადატვირთვა"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"გადატვირთვა მოგვიანებით"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"სივრცითი აუდიო"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index c492750..9e7c4c8 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Бет тану функциясы және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Бет тану функциясы, саусақ ізі және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Бет тану функциясы, саусақ іздері және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Бұл керек, себебі жеке басты тексеру функциясы қосылған."</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Қолданбалар орнату"</b>\n"Кеңістігіңізге құпия сақтағыңыз келетін қолданбаларды орнатуға болады."</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Есте сақтаңыз"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Кеңістігіңізді құлыптасаңыз, қолданбалардың жұмысы тоқтайды."</b>\n"Кеңістікті құлыптаған кезде, ондағы қолданбалар жұмысын тоқтатады және олардан хабарландырулар алмайсыз."</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Құпия кеңістіктер фондық режимде жұмыс істеуі немесе маңызды хабарландырулар жіберуі керек (мысалы, медициналық мақсаттағы) қолданбаларға арналмаған. Себебі кеңістік құлыпталған кезде, хабарландырулар мен фондық режимдегі әрекеттер тоқтатылады.\n\nСонымен қатар ондағы қолданбалар \"Рұқсаттарды басқару\" бөлімінде, құпиялық тақтасында және басқа параметрлерде көрсетілмейді.\n\nҚұпия кеңістікті жаңа құрылғыға көшіру мүмкін емес. Оны басқа құрылғыда пайдаланғыңыз келсе, жаңасын орнатуыңыз керек болады.\n\nҚұрылғыңызды компьютерге жалғаған немесе оған зиянды қолданбалар орнатқан кез келген адам құпия кеңістігіңізге кіре алады."</string>
- <string name="private_space_settings_footer_text" msgid="3742468470394835356">"Құпия кеңістіктер фондық режимде жұмыс істеуі немесе маңызды хабарландырулар жіберуі керек (мысалы, медициналық мақсаттағы) қолданбаларға арналмаған. Себебі кеңістік құлыпталған кезде, хабарландырулар мен фондық режимдегі әрекеттер тоқтатылады.\n\nСонымен қатар ондағы қолданбалар \"Рұқсаттарды басқару\" бөлімінде, құпиялық тақтасында және басқа параметрлерде көрсетілмейді.\n\nҚұпия кеңістікті жаңа құрылғыда қалпына келтіру мүмкін емес. Оны басқа құрылғыда пайдаланғыңыз келсе, жаңасын орнатуыңыз керек болады.\n\nҚұрылғыңызды компьютерге жалғаған немесе оған зиянды қолданбалар орнатқан кез келген адам құпия кеңістігіңізге кіре алады."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Құпия кеңістіктер фондық режимде жұмыс істейтін немесе аса маңызды хабарландырулар жіберетін (мысалы, медициналық) қолданбаларға арналмаған. Себебі кеңістік құлыпталған кезде, хабарландырулар мен фондық режимдегі әрекеттер тоқтатылады.\n\nСонымен қатар ондағы қолданбалар \"Рұқсаттарды басқару\" бөлімінде, құпиялық тақтасында және басқа параметрлерде көрсетілмейді.\n\nҚұпия кеңістікті жаңа құрылғыға көшіру мүмкін емес. Оны басқа құрылғыда пайдаланғыңыз келсе, жаңасын орнатуыңыз керек болады.\n\nҚұрылғыңызды компьютерге жалғаған немесе оған зиянды қолданбалар орнатқан кез келген адам құпия кеңістігіңізге кіре алады."</string>
+ <string name="private_space_settings_footer_text" msgid="3742468470394835356">"Құпия кеңістіктер фондық режимде жұмыс істейтін немесе аса маңызды хабарландырулар жіберетін (мысалы, медициналық) қолданбаларға арналмаған. Себебі кеңістік құлыпталған кезде, хабарландырулар мен фондық режимдегі әрекеттер тоқтатылады.\n\nСонымен қатар ондағы қолданбалар \"Рұқсаттарды басқару\" бөлімінде, құпиялық тақтасында және басқа параметрлерде көрсетілмейді.\n\nҚұпия кеңістікті жаңа құрылғыда қалпына келтіру мүмкін емес. Оны басқа құрылғыда пайдаланғыңыз келсе, жаңасын орнатуыңыз керек болады.\n\nҚұрылғыңызды компьютерге жалғаған немесе оған зиянды қолданбалар орнатқан кез келген адам құпия кеңістігіңізге кіре алады."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Құпия кеңістік туралы толық ақпарат"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Бұған бірнеше минут кетеді."</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"Құпия кеңістік реттеліп жатыр…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Опциялар"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Арнайы мүмкіндіктер"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Физикалық пернетақта"</string>
- <string name="show_ime" msgid="4334255501724746849">"Экрандағы пернетақтаны пайдалану"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Физикалық пернетақта қосулы кезде оны экранға шығару"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Қайтару пернелері"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Пернетақта перненің <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мс ішінде жылдам қайталап басылғанын елемейді."</string>
<string name="slow_keys" msgid="2891452895499690837">"Баяу пернелер"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Бәрібір жалғастыру"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Бас тарту"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ұлғайту параметрлері"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Ұлғайтқышты 1 саусақпен жылжытыңыз"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Экранда жылжу үшін 1 саусақпен сүйреңіз."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Ұлғайту аймағын бір саусақпен сүйреп жылжытыңыз."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Ұлғайту аймағын екі саусақпен сүйреп жылжытыңыз."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Экранның тек бір бөлігін ұлғайту кезінде қолданылмайды."</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Масштабтау үшін түймені түртіңіз"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Экранның масштабын тез өзгертіп, контентті үлғайта аласыз."</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Ұлғайту үшін:</b><br/> {0,number,integer}. Жылдам пәрмен көмегімен ұлғайта бастаңыз.<br/> {1,number,integer}. Экранды түртіңіз.<br/> {2,number,integer}. Экранның басқа жеріне жылжу үшін 2 саусақпен сүйреңіз.<br/> {3,number,integer}. Ыңғайлы масштабты таңдау үшін 2 саусақ арасын ашыңыз немесе қосыңыз.<br/> {4,number,integer}. Жылдам пәрмен көмегімен ұлғайту режимінен шығыңыз.<br/><br/> <b>Уақытша ұлғайту үшін:</b><br/> {0,number,integer}. Ұлғайту түріне \"толық экран\" мәні тағайындалғанына көз жеткізіңіз.<br/> {1,number,integer}. Жылдам пәрмен көмегімен ұлғайта бастаңыз.<br/> {2,number,integer}. Экранның кез келген жерін түртіп ұстап тұрыңыз.<br/> {3,number,integer}. Экранның басқа жеріне жылжу үшін саусақпен сүйреңіз.<br/> {4,number,integer}. Ұлғайту режимінен шығу үшін саусағыңызды көтеріңіз."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Ұлғайту үшін:</b><br/> {0,number,integer}. Жылдам пәрмен көмегімен ұлғайта бастаңыз.<br/> {1,number,integer}. Экранды түртіңіз.<br/> {2,number,integer}. Экранның басқа жеріне жылжу үшін 2 саусақпен сүйреңіз.<br/> {3,number,integer}. Масштабтаудты реттеу үшін 2 саусақ арасын ашыңыз.<br/> {4,number,integer}. Жылдам пәрмен көмегімен ұлғайтуды тоқтатыңыз.<br/><br/> Сондай-ақ уақытша ұлғайта аласыз және басқа әрекеттерді орындауыңызға болады."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Ұлғайту үшін:</b><br/> {0,number,integer}. Жылдам пәрмен көмегімен ұлғайта бастаңыз.<br/> {1,number,integer}. Экранды түртіңіз.<br/> {2,number,integer}. Экранның басқа жеріне жылжу үшін 1 не 2 саусақпен сүйреңіз.<br/> {3,number,integer}. Масштабтаудты реттеу үшін 2 саусақ арасын ашыңыз.<br/> {4,number,integer}. Жылдам пәрмен көмегімен ұлғайтуды тоқтатыңыз.<br/><br/> Сондай-ақ уақытша ұлғайта аласыз және басқа әрекеттерді орындауыңызға болады."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Ұлғайту функциясы қосулы тұрғанда, экраныңызды ұлғайта аласыз.\n\n"<b>"Масштабтау үшін"</b>" ұлғайту функциясын іске қосып, экранның кез келген жерін түртіңіз.\n"<ul><li>"Айналдыру үшін екі немесе бірнеше саусақпен сүйреңіз."</li>\n<li>"Масштабтауды реттеу үшін екі немесе бірнеше саусақты жақындатыңыз."</li></ul>\n\n<b>"Уақытша масштабтау үшін"</b>" ұлғайту функциясын іске қосыңыз, содан кейін экранның кез келген жерін басып тұрыңыз.\n"<ul><li>"Жылжыту үшін саусағыңызды экранның бір жерінен екінші жеріне сүйреңіз."</li>\n<li>"Кішірейту үшін саусағыңызды көтеріңіз."</li></ul>\n\n"Пернетақтада және навигация жолағында ұлғайту мүмкін емес."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g> бет"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Арнайы мүмкіндіктер түймесінің жылдам пәрмені"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Режим жасау"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Арнаулы"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Хабарландыруларды шектеу"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Мазаламау режимін қосу"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Оятқыштар мен мультимедиа дыбыстары тоқтата алады."</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Кесте құру"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Кесте"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> сағ <xliff:g id="MINUTES">%2$d</xliff:g> мин"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Автоматты түрде қосу"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Кесте"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Телефонды үнсіз режимге қою"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Мазаламау ережесін орнату"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"хабарландыруды ашу"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Хабарландыруларды кейінге қалдыруға рұқсат беру"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Қолданба белгішесіндегі хабарландыру белгісі"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Қалқыма хабарлар"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Қалқыма хабарлар"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Осы әңгімені қалқыма хабар түрінде шығару"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Барлығы"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Қолданбаларға қайта анықтауға рұқсат беру"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Тоқтата алатын қолданбалар"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Басқа да қолданбаларды таңдаңыз"</string>
@@ -4347,7 +4347,7 @@
<string name="system_navigation_title" msgid="4890381153527184636">"Навигация режимі"</string>
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"2 түймелі навигация"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Қолданбалар арасында ауысу үшін негізгі экран түймесінен жоғары қарай сырғытыңыз. Барлық қолданбаларды көру үшін қайтадан жоғарыға сырғытыңыз. Артқа оралу үшін \"Артқа\" түймесін түртіңіз."</string>
- <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Қауіпсіздік және төтенше жағдай"</string>
+ <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Жеке қауіпсіздік және төтенше жағдай"</string>
<string name="emergency_dashboard_summary" msgid="401033951074039302">"Құтқару қызметін шақыру, медициналық ақпарат, хабарландырулар"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Қимылмен басқару"</string>
<string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"Негізгі экранға өту үшін экранның төменгі жағынан жоғары қарай сырғытыңыз. Қолданбалар арасында ауысу үшін төменнен жоғары қарай сырғытып, ұстап тұрыңыз да, саусағыңызды жіберіңіз. Артқа оралу үшін экранның сол немесе оң жиегінен сырғытыңыз."</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Корпус"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарея"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Параметрлер панелі"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Жұмыс үстелінің режимін мәжбүрлеп қосу"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Қосымша дисплейлерде эксперименттік жұмыс үстелі режимін мәжбүрлеп қосу"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Еркін пішінді терезелерге рұқсат беру"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Еркін пішінді терезелерді қолдауға рұқсат береді."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Екінші экранда еркін пішінді терезе құруға рұқсат беру"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Еркін пішінді терезе құруға тек қосалқы экранда рұқсат береді."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Өлшемі өзгермейтін қолданба мен көп терезелі режим"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Өлшемі өзгермейтін қолданбаларды көп терезелі режимде пайдалануға мүмкіндік береді."</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Қараңғылауға жол бермеу"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16 КБ әзірлеуші опциясын пайдаланбас бұрын, құрылғының деректер бөлігін ext4 файл жүйесіне түрлендіру керек. Бұл режимде жұмыс істеген кезде, бағдарламалық құрал тұтастығына кепілдік берілмейді және жүктегіш құлпы ашылған кезде, телефоныңызда сақталған деректерге қауіп төнуі мүмкін. 16 КБ опциясын қосқаннан кейін, құрылғыны тағы бір рет өшіріп қосу керек. Осы режимге өткеннен кейін, 4 КБ және 16 КБ режимдері арасында бір рет өшіріп қосу арқылы ауыса аласыз. Осы режимдерде кейбір функциялар өшірілетіндіктен, кейбір қолданбалар жұмыс істемеуі мүмкін. Құрылғыны жұмыс күйіне қайтару үшін 4 КБ режиміне қайта ауысып, құрылғыны зауыттық параметрлерге қайтаратын жүктегішті құлыптау керек. Құрылғы Android жүйесіне жүктелген кезде, Әзірлеуші опцияларынан жүктегіш құлпын ашу параметрін өшіріңіз. Растағаннан кейін, құрылғы тазартылып, файл жүйесі ext4 түріне өзгертіледі. Болған соң, қайта оралып, 16 КБ режимін қайта қосыңыз."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Барлық деректі өшіру"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Құрылғыны қайта форматтау және деректер бөлімін ext4 жүйесіне тазарту мүмкін болмады."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Жүктегіштің құлпын ашу керек"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16 КБ әзірлеуші опциясын пайдаланбас бұрын, құрылғыдағы жүктегіш құлпын ашу керек. Бұл режимде жұмыс істеген кезде, бағдарламалық құрал тұтастығына кепілдік берілмейді және жүктегіш құлпы ашылған кезде, телефоныңызда сақталған деректерге қауіп төнуі мүмкін. Пайдаланушының барлық дерегі мен параметрі 16 КБ режимі қосылған кезде тазартылады. Жүктегіш құлпын ашқан соң, 16 КБ опциясын қосу үшін құрылғыны екі рет өшіріп қосу керек. Осы режимге өткеннен кейін, 4 КБ және 16 КБ режимдері арасында бір рет өшіріп қосу арқылы ауыса аласыз. Осы режимдерде кейбір функциялар өшірілетіндіктен, кейбір қолданбалар жұмыс істемеуі мүмкін. Құрылғыны жұмыс күйіне қайтару үшін 4 КБ режиміне қайта ауысып, (құрылғыны зауыттық параметрлерге қайтаратын) жүктегішті құлыптау керек. Жүктегіш құлпын ашып, қайталап көріңіз. Осыған қатысты нұсқауларды мына сілтеме арқылы көре аласыз: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Бетке тәуелсіз 4 КБ режимін пайдалану"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Бетке тәуелсіз режимдегі 4 КБ режимінде жұмыс істеп отырсыз. Бұл режимде жұмыс істеген кезде, бағдарламалық құрал тұтастығына кепілдік берілмейді және жүктегіш құлпы ашылған кезде, телефоныңызда сақталған деректерге қауіп төнуі мүмкін. Осы режимдерде кейбір функциялар өшірілетіндіктен, кейбір қолданбалар жұмыс істемеуі мүмкін. Жұмыс режиміне қайта оралу үшін құрылғының жүктегішін құлыптау керек. Қосымша ақпарат алу үшін түртіңіз."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Бетке тәуелсіз режимдегі 4 КБ режимінде жұмыс істеп отырсыз. Бұл режимде жұмыс істеген кезде, бағдарламалық құрал тұтастығына кепілдік берілмейді және жүктегіш құлпы ашылған кезде, телефоныңызда сақталған деректерге қауіп төнуі мүмкін. Осы режимдерде кейбір функциялар өшірілетіндіктен, кейбір қолданбалар жұмыс істемеуі мүмкін. Жұмыс режиміне қайта оралу үшін құрылғының жүктегішін құлыптау керек. Мұндайда құрылғы қайтадан зауыттық параметрлерге қайтарылып, жұмыс параметрлері қалпына келтіріледі. Құрылғы Android жүйесіне жүктелген кезде, Әзірлеуші опцияларынан жүктегіш құлпын ашу параметрін өшіріңіз. Құрылғыда Android жүйесі жүктелмесе немесе дұрыс жұмыс істемесе, құрылғыны <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> немесе <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> сілтемесіндегі зауыттық образдармен қайта бағдарламалап, \"Құрылғыны тазарту\", \"Жүктегішті құлыптау\" және \"Барлық бөлікті бағдарламау\" опцияларын таңдаңыз."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Бетке тәуелсіз 16 КБ режимін пайдалану"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Бет өлшеміне тәуелсіз режимдегі 16 КБ режимінде жұмыс істеп отырсыз. Бұл режимде бағдарламалық құрал тұтастығына кепілдік берілмейді және жүктегіш құлпы ашық кезде телефоныңызда сақталған деректерге қауіп төнуі мүмкін. Бұл режимдерде кейбір функциялар өшірілетіндіктен, белгілі бір қолданбалар жұмыс істемеуі мүмкін. Жұмыс күйіне қайта оралу үшін 4 КБ режиміне қайта ауысып, құрылғының жүктегішін құлыптау керек. Қосымша ақпарат алу үшін түртіңіз."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Бет өлшеміне тәуелсіз режимдегі 16 КБ режимінде жұмыс істеп отырсыз. Бұл режимде бағдарламалық құрал тұтастығына кепілдік берілмейді және жүктегіш құлпы ашық кезде телефоныңызда сақталған деректерге қауіп төнуі мүмкін. Бұл режимдерде кейбір функциялар өшірілетіндіктен, белгілі бір қолданбалар жұмыс істемеуі мүмкін. Жұмыс күйіне қайта оралу үшін 4 КБ режиміне қайта ауысып, құрылғының жүктегішін құлыптау керек. Мұндайда құрылғы қайтадан зауыттық параметрлерге қайтарылып, жұмыс параметрлері қалпына келтіріледі. Құрылғы Android жүйесіне жүктелгенде, \"Әзірлеуші опциялары\" параметрлерінен жүктегіш құлпын ашу параметрін өшіріңіз. Құрылғы Android жүйесіне жүктелмесе немесе дұрыс жұмыс істемесе, құрылғыны <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> немесе <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> сілтемесіндегі зауыттық образдармен қайта бағдарламалап, \"Құрылғыны тазарту\", \"Жүктегішті құлыптау\" және \"Барлық бөлікті бағдарламау\" опцияларын таңдаңыз."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Бетке тәуелсіз 16 КБ режимі"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Толық ақпарат"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Қате туралы есеп өңдеу құралы"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Планшет қондыру станциясына қойылған кезде, экраныңызда ненің көрсетілетінін таңдаңыз. Скринсейвер пайдаланылған кезде құрылғы көбірек қуат тұтынуы мүмкін."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Реттеу"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> скринсейверін бейімдеу"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Еркін түрде қолдау параметрін белсендіру үшін құрылғыны өшіріп қосу қажет."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Қосымша дисплейлерде жұмыс үстелі режимін мәжбүрлеп белсендіру үшін құрылғыны өшіріп қосу қажет."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Еркін пішінді терезелерді қолдауға рұқсат беру үшін құрылғыны өшіріп қосу қажет."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Еркін пішінді терезелерді қолдауды өзгерту үшін құрылғыны өшіріп қосу қажет."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Қосалқы экранда еркін пішінді терезені күштеп құру үшін құрылғыны өшіріп қосу қажет."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Қазір өшіріп қосу"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Кейінірек өшіріп қосу"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Кеңістіктік дыбыс"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 53670ee..08a7c61 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"បានបញ្ចូលមុខ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"បានបញ្ចូលមុខ ស្នាមម្រាមដៃ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"បានបញ្ចូលមុខ ស្នាមម្រាមដៃ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ចាំបាច់ធ្វើសកម្មភាពនេះ ដោយសារតែការត្រួតពិនិត្យអត្តសញ្ញាណត្រូវបានបើក"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"ជម្រើស"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ភាពងាយស្រួល"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"ក្ដារចុចរូបវ័ន្ត"</string>
- <string name="show_ime" msgid="4334255501724746849">"ប្រើក្ដារចុចលើអេក្រង់"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"រក្សានៅលើអេក្រង់ ពេលក្តារចុចរូបវ័ន្តកំពុងធ្វើប្រតិបត្តិការ"</string>
<string name="bounce_keys" msgid="7419450970351743904">"គ្រាប់ចុចឡង"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"ក្ដារចុចមិនអើពើនឹងការចុចដដែលៗយ៉ាងរហ័សនៃគ្រាប់ចុចដដែលក្នុងរយៈពេល <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> មិល្លីវិនាទី"</string>
<string name="slow_keys" msgid="2891452895499690837">"គ្រាប់ចុចយឺត"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"មិនអីទេ បន្តចុះ"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"បោះបង់"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ការកំណត់ការពង្រីក"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ផ្លាស់ទីកែវពង្រីកដោយប្រើម្រាមដៃ 1"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"អូសម្រាមដៃ 1 ដើម្បីផ្លាស់ទីជុំវិញអេក្រង់"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ផ្លាស់ទីផ្ទៃពង្រីកដោយអូសម្រាមដៃមួយ។"</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ផ្លាស់ទីផ្ទៃពង្រីកដោយអូសម្រាមដៃពីរ។"</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"មិនអាចប្រើបានទេ ពេលពង្រីកតែផ្នែកនៃអេក្រង់"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ចុចប៊ូតុងដើម្បីពង្រីក ឬបង្រួម"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ពង្រីកនៅលើអេក្រង់យ៉ាងរហ័ស ដើម្បីបង្ហាញខ្លឹមសារធំជាងមុន"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>ដើម្បីពង្រីក៖</b><br/> {0,number,integer}. ប្រើផ្លូវកាត់ ដើម្បីចាប់ផ្ដើមការពង្រីក<br/> {1,number,integer}. ចុចអេក្រង់<br/> {2,number,integer}. អូសម្រាមដៃ 2 ដើម្បីផ្លាស់ទីនៅជុំវិញអេក្រង់<br/>{3,number,integer}. ច្បិចដោយប្រើម្រាមដៃ 2 ដើម្បីកែតម្រូវការពង្រីកបង្រួម<br/> {4,number,integer}. ប្រើផ្លូវកាត់ ដើម្បីបញ្ឈប់ការពង្រីក<br/><br/> <b>ដើម្បីពង្រីកជាបណ្ដោះអាសន្ន៖</b><br/> {0,number,integer}. សូមប្រាកដថា ប្រភេទនៃការពង្រីករបស់អ្នកត្រូវបានកំណត់ទៅពេញអេក្រង់<br/> {1,number,integer}. ប្រើផ្លូវកាត់ ដើម្បីចាប់ផ្ដើមការពង្រីក<br/> {2,number,integer}. ចុចកន្លែងណាមួយនៅលើអេក្រង់ឱ្យជាប់<br/> {3,number,integer}. អូសម្រាមដៃ ដើម្បីផ្លាស់ទីនៅជុំវិញអេក្រង់<br/> {4,number,integer}. ដកម្រាមដៃចេញ ដើម្បីបញ្ឈប់ការពង្រីក"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>ដើម្បីពង្រីក៖</b><br/> {0,number,integer}។ ប្រើផ្លូវកាត់ ដើម្បីចាប់ផ្ដើមការពង្រីក<br/> {1,number,integer}។ ចុចអេក្រង់<br/> {2,number,integer}។ អូសម្រាមដៃ 2 ដើម្បីផ្លាស់ទីលើអេក្រង់<br/>{3,number,integer}។ ច្បិចដោយប្រើម្រាមដៃ 2 ដើម្បីកែតម្រូវការពង្រីកបង្រួម<br/> {4,number,integer}។ ប្រើផ្លូវកាត់ ដើម្បីបញ្ឈប់ការពង្រីក<br/><br/> អ្នកក៏អាចពង្រីកជាបណ្ដោះអាសន្ន និងធ្វើអ្វីៗជាច្រើនទៀតបានផងដែរ។"</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>ដើម្បីពង្រីក៖</b><br/> {0,number,integer}។ ប្រើផ្លូវកាត់ ដើម្បីចាប់ផ្ដើមការពង្រីក<br/> {1,number,integer}។ ចុចអេក្រង់<br/> {2,number,integer}។ អូសម្រាមដៃ 1 ឬ 2 ដើម្បីផ្លាស់ទីលើអេក្រង់<br/> {3,number,integer}។ ច្បិចដោយប្រើម្រាមដៃ 2 ដើម្បីកែតម្រូវការពង្រីកបង្រួម<br/> {4,number,integer}។ ប្រើផ្លូវកាត់ ដើម្បីបញ្ឈប់ការពង្រីក<br/><br/> អ្នកក៏អាចពង្រីកជាបណ្ដោះអាសន្ន និងធ្វើអ្វីៗជាច្រើនទៀតបានផងដែរ។"</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"នៅពេលបើកការពង្រីក អ្នកអាចពង្រីកនៅលើអេក្រង់របស់អ្នកបាន។\n\n"<b>"ដើម្បីពង្រីកបង្រួម"</b>" សូមចាប់ផ្ដើមការពង្រីក រួចចុចលើកន្លែងណាមួយនៅលើអេក្រង់។\n"<ul><li>"អូសដោយប្រើម្រាមដៃ 2 ឬច្រើនដើម្បីរំកិល"</li>\n<li>"ច្បិចដោយប្រើម្រាមដៃ 2 ឬច្រើន ដើម្បីកែតម្រូវការពង្រីកបង្រួម"</li></ul>\n\n<b>"ដើម្បីពង្រីកបង្រួមជាបណ្តោះអាសន្ន"</b>" ចាប់ផ្តើមការពង្រីក បន្ទាប់មកចុចសង្កត់កន្លែងណាមួយនៅលើអេក្រង់ឱ្យជាប់។\n"<ul><li>"អូសដើម្បីផ្លាស់ទីនៅលើអេក្រង់"</li>\n<li>"លើកម្រាមដៃឡើងដើម្បីបង្រួម"</li></ul>\n\n"អ្នកមិនអាចពង្រីកនៅលើក្តារចុច ឬរបាររុករកបានទេ។"</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"ទំព័រទី <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> នៃ <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ផ្លូវកាត់ប៊ូតុងភាពងាយស្រួល"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"បង្កើតមុខងារ"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ផ្ទាល់ខ្លួន"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"កាត់បន្ថយការរំខាន"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"បើកមុខងារកុំរំខាន"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"សំឡេងមេឌៀ និងម៉ោងរោទ៍អាចផ្អាកបាន"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"កំណត់កាលវិភាគ"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"កាលវិភាគ"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ម៉ <xliff:g id="MINUTES">%2$d</xliff:g> ន"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"បើកដោយស្វ័យប្រវត្តិ"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"កាលវិភាគ"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"បិទសំឡេងទូរសព្ទក្នុងពេលជាក់លាក់"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"កំណត់ច្បាប់សម្រាប់មុខងារកុំរំខាន"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"បើកការជូនដំណឹង"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"អនុញ្ញាតការផ្អាកការជូនដំណឹង"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ស្លាកជូនដំណឹងនៅលើរូបកម្មវិធី"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"កញ្ចប់នៃការជូនដំណឹង"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"ពពុះ"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ពពុះ"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"បង្ហាញការសន្ទនានេះជាពពុះ"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ទាំងអស់"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"អនុញ្ញាតឱ្យកម្មវិធីលុបពីលើ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"កម្មវិធីដែលអាចផ្អាកបាន"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ជ្រើសរើសកម្មវិធីច្រើនទៀត"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"ស្រោម"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ថ្ម"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ផ្ទាំងការកំណត់"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"បង្ខំមុខងារអេក្រង់ដើម"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"បង្ខំមុខងារអេក្រង់ដើមសាកល្បងនៅលើអេក្រង់ទីពីរ"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"បើកវិនដូទម្រង់សេរី"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"បើកជំនួយសម្រាប់វិនដូទម្រង់សេរី។"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"បើកវិនដូទម្រង់សេរីលើផ្ទាំងអេក្រង់ទីពីរ"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"បើកវិនដូទម្រង់សេរីតែផ្ទាំងអេក្រង់ទីពីរប៉ុណ្ណោះ។"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"បើកកម្មវិធីដែលមិនអាចប្ដូរទំហំបាននៅក្នុងពហុវិនដូ"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"អនុញ្ញាតឱ្យកម្មវិធីដែលមិនអាចប្ដូរទំហំបានស្ថិតនៅក្នុងពហុវិនដូ"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"លុបពីលើមុខងារបង្ខំឱ្យងងឹត"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"ផ្នែកទិន្នន័យរបស់ឧបករណ៍នេះត្រូវបំប្លែងទៅជា ext4 មុនពេលប្រើជម្រើសសម្រាប់អ្នកអភិវឌ្ឍន៍ 16KB។ មិនអាចធានាសុក្រឹតភាពកម្មវិធីនៅក្នុងមុខងារនេះទេ ហើយទិន្នន័យទាំងឡាយដែលបានរក្សាទុកនៅលើទូរសព្ទ នៅពេលកម្មវិធីដំណើរការប្រព័ន្ធត្រូវបានដោះសោ អាចប្រឈមនឹងហានិភ័យ។ ការបើកដំណើរការជម្រើស 16KB នឹងតម្រូវឱ្យមានការចាប់ផ្ដើមឡើងវិញម្ដងទៀតបន្ទាប់ពីនេះ។ នៅពេលដែលអ្នកកំពុងប្រើមុខងារនេះ អ្នកអាចប្ដូរទៅមករវាងមុខងារ 4KB និង 16KB តាមរយៈការចាប់ផ្ដើមឡើងវិញតែម្ដងគត់។ មុខងារមួយចំនួននឹងត្រូវបានបិទនៅក្នុងមុខងារទាំងនេះ ដូច្នេះកម្មវិធីមួយចំនួនប្រហែលជាមិនដំណើរការទេ។ ដើម្បីត្រឡប់ឧបករណ៍ទៅមុខងារផលិតកម្ម អ្នកនឹងត្រូវប្ដូរត្រឡប់ទៅមុខងារ 4KB វិញ បន្ទាប់មកចាក់សោកម្មវិធីដំណើរការប្រព័ន្ធ ដែលកំណត់ឧបករណ៍ដូចចេញពីរោងចក្រ។ បន្ទាប់ពីឧបករណ៍ចាប់ផ្ដើមចូល Android ដោយជោគជ័យ សូមបិទការដោះសោ OEM នៅក្នុងជម្រើសសម្រាប់អ្នកអភិវឌ្ឍន៍។ ឧបករណ៍នឹងត្រូវបានឈូស ហើយប្រព័ន្ធឯកសារនឹងត្រូវបានប្ដូរទៅជា ext4 បន្ទាប់ពីបញ្ជាក់រួច។ បន្ទាប់ពីដំណើរការនេះចប់ សូមត្រឡប់មកបើក 16KB ម្ដងទៀត។"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"លុបទិន្នន័យទាំងអស់"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"មិនអាចឈូស និងកំណត់ទម្រង់ផ្នែកទិន្នន័យឡើងវិញទៅជា ext4 បានទេ។"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"តម្រូវឱ្យមានការដោះសោកម្មវិធីដំណើរការប្រព័ន្ធ"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"ឧបករណ៍នេះត្រូវដោះសោកម្មវិធីដំណើរការប្រព័ន្ធ មុនពេលប្រើជម្រើសសម្រាប់អ្នកអភិវឌ្ឍន៍ 16KB។ មិនអាចធានាសុក្រឹតភាពកម្មវិធីនៅក្នុងមុខងារនេះទេ ហើយទិន្នន័យទាំងឡាយដែលបានរក្សាទុកនៅលើទូរសព្ទ នៅពេលកម្មវិធីដំណើរការប្រព័ន្ធត្រូវបានដោះសោ អាចប្រឈមនឹងហានិភ័យ។ ទិន្នន័យ និងការកំណត់ទាំងអស់របស់អ្នកប្រើប្រាស់នឹងត្រូវបានឈូស នៅពេលបើកដំណើរការមុខងារ 16KB។ នៅពេលកម្មវិធីដំណើរការប្រព័ន្ធត្រូវបានដោះសោ ការបើកដំណើរការជម្រើស 16KB នឹងតម្រូវឱ្យមានការចាប់ផ្ដើមឡើងវិញពីរដង។ នៅពេលដែលអ្នកកំពុងប្រើមុខងារនេះ អ្នកអាចប្ដូរទៅមករវាងមុខងារ 4KB និង 16KB តាមរយៈការចាប់ផ្ដើមឡើងវិញតែម្ដងគត់។ មុខងារមួយចំនួននឹងត្រូវបានបិទនៅក្នុងមុខងារទាំងនេះ ដូច្នេះកម្មវិធីមួយចំនួនប្រហែលជាមិនដំណើរការទេ។ ដើម្បីត្រឡប់ឧបករណ៍ទៅមុខងារផលិតកម្ម អ្នកត្រូវប្ដូរទៅមុខងារ 4KB វិញ បន្ទាប់មក ការចាក់សោ OEM/កម្មវិធីដំណើរការប្រព័ន្ធ (ដែលកំណត់ឧបករណ៍ដូចចេញពីរោងចក្រ)។ សូមដោះសោកម្មវិធីដំណើរការប្រព័ន្ធ រួចព្យាយាមម្ដងទៀត។ អ្នកអាចមើលការណែនាំអំពីរបៀបអនុវត្តសកម្មភាពនេះតាម <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"ការប្រើមុខងារ Page-Agnostic 4KB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"អ្នកកំពុងប្រើមុខងារ 4KB នៃមុខងារ Page-Agnostic។ មិនអាចធានាសុក្រឹតភាពកម្មវិធីនៅក្នុងមុខងារនេះទេ ហើយទិន្នន័យទាំងឡាយដែលបានរក្សាទុកនៅលើទូរសព្ទ នៅពេលកម្មវិធីដំណើរការប្រព័ន្ធត្រូវបានដោះសោ អាចប្រឈមនឹងហានិភ័យ។ មុខងារមួយចំនួននឹងត្រូវបានបិទនៅក្នុងមុខងារទាំងនេះ ដូច្នេះកម្មវិធីមួយចំនួនប្រហែលជាមិនដំណើរការទេ។ ដើម្បីបញ្ចូលមុខងារផលិតកម្មឡើងវិញ អ្នកត្រូវតែចាក់សោកម្មវិធីដំណើរការប្រព័ន្ធរបស់ឧបករណ៍។ ចុចដើម្បីអានបន្ថែម។"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"អ្នកកំពុងប្រើមុខងារ 4KB នៃមុខងារ Page-Agnostic។ មិនអាចធានាសុក្រឹតភាពកម្មវិធីនៅក្នុងមុខងារនេះទេ ហើយទិន្នន័យទាំងឡាយដែលបានរក្សាទុកនៅលើទូរសព្ទ នៅពេលកម្មវិធីដំណើរការប្រព័ន្ធត្រូវបានដោះសោ អាចប្រឈមនឹងហានិភ័យ។ មុខងារមួយចំនួននឹងត្រូវបានបិទនៅក្នុងមុខងារទាំងនេះ ដូច្នេះកម្មវិធីមួយចំនួនប្រហែលជាមិនដំណើរការទេ។ ដើម្បីបញ្ចូលមុខងារផលិតកម្មឡើងវិញ អ្នកត្រូវតែចាក់សោកម្មវិធីដំណើរការប្រព័ន្ធរបស់ឧបករណ៍។ ដំណើរការនេះនឹងកំណត់ឧបករណ៍ដូចចេញពីរោងចក្រ រួចត្រឡប់ឧបករណ៍ទៅការកំណត់ផលិតកម្មវិញ។ បន្ទាប់ពីឧបករណ៍ចាប់ផ្ដើមចូល Android ដោយជោគជ័យ សូមបិទការដោះសោ OEM នៅក្នុងជម្រើសសម្រាប់អ្នកអភិវឌ្ឍន៍។ ប្រសិនបើឧបករណ៍មិនអាចចាប់ផ្ដើមប្រព័ន្ធប្រតិបត្តិការ Android ឬមិនមានស្ថិរភាព សូមជំនួសកម្មវិធីឧបករណ៍ឡើងវិញដោយប្រើរូបភាពពីរោងចក្រចុងក្រោយបំផុតពី <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ឬប្រើ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> រួចជ្រើសរើស \'ឈូសឧបករណ៍\' \'ចាក់សោកម្មវិធីដំណើរការប្រព័ន្ធ\' និង \'បង្ខំឱ្យជំនួសផ្នែកទាំងអស់\'។"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"ដោយប្រើមុខងារ Page-Agnostic 16KB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"អ្នកកំពុងប្រើមុខងារ 16KB នៃមុខងារ Page-Agnostic។ មិនអាចធានាសុក្រឹតភាពកម្មវិធីនៅក្នុងមុខងារនេះទេ ហើយទិន្នន័យទាំងឡាយដែលបានរក្សាទុកនៅលើទូរសព្ទ នៅពេលកម្មវិធីដំណើរការប្រព័ន្ធត្រូវបានដោះសោ អាចប្រឈមនឹងហានិភ័យ។ មុខងារមួយចំនួននឹងត្រូវបានបិទនៅក្នុងមុខងារទាំងនេះ ដូច្នេះកម្មវិធីមួយចំនួនប្រហែលជាមិនដំណើរការទេ។ ដើម្បីចូលទៅក្នុងមុខងារផលិតកម្មឡើងវិញ អ្នកត្រូវតែប្ដូរត្រឡប់ទៅមុខងារ 4KB បន្ទាប់មកចាក់សោកម្មវិធីដំណើរការប្រព័ន្ធរបស់ឧបករណ៍។ ចុចដើម្បីអានបន្ថែម។"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"អ្នកកំពុងប្រើមុខងារ 16KB នៃមុខងារ Page-Agnostic។ មិនអាចធានាសុក្រឹតភាពកម្មវិធីនៅក្នុងមុខងារនេះទេ ហើយទិន្នន័យទាំងឡាយដែលបានរក្សាទុកនៅលើទូរសព្ទ នៅពេលកម្មវិធីដំណើរការប្រព័ន្ធត្រូវបានដោះសោ អាចប្រឈមនឹងហានិភ័យ។ មុខងារមួយចំនួននឹងត្រូវបានបិទនៅក្នុងមុខងារទាំងនេះ ដូច្នេះកម្មវិធីមួយចំនួនប្រហែលជាមិនដំណើរការទេ។ ដើម្បីចូលទៅក្នុងមុខងារផលិតកម្មឡើងវិញ អ្នកត្រូវតែប្ដូរត្រឡប់ទៅមុខងារ 4KB បន្ទាប់មកចាក់សោកម្មវិធីដំណើរការប្រព័ន្ធរបស់ឧបករណ៍។ ដំណើរការនេះនឹងកំណត់ឧបករណ៍ដូចចេញពីរោងចក្រ រួចត្រឡប់ឧបករណ៍ទៅការកំណត់ផលិតកម្មវិញ។ បន្ទាប់ពីឧបករណ៍ចាប់ផ្ដើមចូល Android ដោយជោគជ័យ សូមបិទការដោះសោ OEM នៅក្នុងជម្រើសសម្រាប់អ្នកអភិវឌ្ឍន៍។ ប្រសិនបើឧបករណ៍មិនអាចចាប់ផ្ដើមប្រព័ន្ធប្រតិបត្តិការ Android ឬមិនមានស្ថិរភាព សូមជំនួសកម្មវិធីឧបករណ៍ឡើងវិញដោយប្រើរូបភាពពីរោងចក្រចុងក្រោយបំផុតពី <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ឬប្រើ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> រួចជ្រើសរើស \'ឈូសឧបករណ៍\' \'ចាក់សោកម្មវិធីដំណើរការប្រព័ន្ធ\' និង \'បង្ខំឱ្យជំនួសផ្នែកទាំងអស់\'។"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"មុខងារ Page-Agnostic 16KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"អានបន្ថែម"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"ឧបករណ៍ដោះស្រាយរបាយការណ៍អំពីបញ្ហា"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"ជ្រើសរើសអ្វីដែលអ្នកនឹងមើលឃើញនៅលើអេក្រង់របស់អ្នក នៅពេលភ្ជាប់ថេប្លេតរបស់អ្នក។ ឧបករណ៍របស់អ្នកអាចប្រើថាមពលកាន់តែច្រើន នៅពេលប្រើធាតុរក្សាអេក្រង់។"</string>
<string name="customize_button_title" msgid="1110284655990203359">"ប្ដូរតាមបំណង"</string>
<string name="customize_button_description" msgid="7440248477266126231">"ប្ដូរ <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> តាមបំណង"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ ដើម្បីបើកជំនួយទម្រង់សេរី។"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ ដើម្បីបង្ខំមុខងារកុំព្យូទ័រនៅលើផ្ទាំងអេក្រង់បន្ទាប់បន្សំ។"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ ដើម្បីបើកជំនួយវិនដូទម្រង់សេរីចាស់។"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ ដើម្បីប្ដូរជំនួយវិនដូទម្រង់សេរី។"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ ដើម្បីបង្ខំឱ្យបើកវិនដូទម្រង់សេរីលើផ្ទាំងអេក្រង់ទីពីរ។"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ចាប់ផ្ដើមឡើងវិញឥឡូវនេះ"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ចាប់ផ្ដើមឡើងវិញពេលក្រោយ"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"សំឡេងលំហ"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 71c7036..8e7139c 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ಮುಖ ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ಮುಖ, ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ಮುಖ ಮತ್ತು ಫಿಂಗರ್ಪ್ರಿಂಟ್ಗಳನ್ನು, ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ಗುರುತಿನ ಪರಿಶೀಲನೆ ಆನ್ ಆಗಿರುವುದರಿಂದ ಇದರ ಅಗತ್ಯವಿದೆ"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"ಆಯ್ಕೆಗಳು"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್"</string>
- <string name="show_ime" msgid="4334255501724746849">"ಆನ್-ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್ ಬಳಸಿ"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್ ಸಕ್ರಿಯವಾಗಿರುವಾಗ ಅದನ್ನು ಪರದೆಯ ಮೇಲೆ ಇರಿಸಿಕೊಳ್ಳಿ"</string>
<string name="bounce_keys" msgid="7419450970351743904">"ಬೌನ್ಸ್ ಕೀಗಳು"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ಮಿ.ಸೆ. ಒಳಗೆ ಒಂದೇ ಕೀಯ ಪುನರಾವರ್ತಿತ ಒತ್ತುವಿಕೆಗಳನ್ನು ಕೀಬೋರ್ಡ್ ತ್ವರಿತವಾಗಿ ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ"</string>
<string name="slow_keys" msgid="2891452895499690837">"ಸ್ಲೋ ಕೀಗಳು"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"ಮೋಡ್ ಅನ್ನು ರಚಿಸಿ"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ಕಸ್ಟಮ್"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"ಅಡಚಣೆಗಳನ್ನು ಮಿತಿಗೊಳಿಸಿ"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಅನ್ನು ಆನ್ ಮಾಡಿ"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ಅಲಾರಾಂಗಳು ಮತ್ತು ಮೀಡಿಯಾ ಧ್ವನಿಗಳು ಅಡಚಣೆಯಾಗಬಹುದು"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ವೇಳಾಪಟ್ಟಿಯನ್ನು ಸೆಟ್ ಮಾಡಿ"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"ವೇಳಾಪಟ್ಟಿ"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ಗಂ, <xliff:g id="MINUTES">%2$d</xliff:g> ನಿಮಿ"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಮಾಡಿ"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ಅವಧಿ"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"ಕೆಲವು ಸಮಯ ಫೋನ್ ನಿಶ್ಯಬ್ಧವಾಗಿಸಿ"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ನಿಯಮ ಹೊಂದಿಸಿ"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"ಅಧಿಸೂಚನೆಯನ್ನು ತೆರೆಯಿರಿ"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"ನೋಟಿಫಿಕೇಶನ್ಗಳನ್ನು ಸ್ನೂಜ್ ಮಾಡಲು ಅನುಮತಿಸಿ"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ಆ್ಯಪ್ ಐಕಾನ್ ಮೇಲೆ ನೋಟಿಫಿಕೇಶನ್ ಡಾಟ್"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"ನೋಟಿಫಿಕೇಶನ್ ಬಂಡಲ್ಗಳು"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"ಬಬಲ್ಸ್"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ಬಬಲ್ಸ್"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ಈ ಸಂಭಾಷಣೆಗೆ ಬಬಲ್ ಗುರುತು ಮಾಡಿ"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ಎಲ್ಲಾ"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ಅತಿಕ್ರಮಿಸಲು ಆ್ಯಪ್ಗಳಿಗೆ ಅನುಮತಿಸಿ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ಅಡಚಣೆ ಉಂಟುಮಾಡಬಹುದಾದ ಆ್ಯಪ್ಗಳು"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ಇನ್ನಷ್ಟು ಆ್ಯಪ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"ಕೇಸ್"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ಬ್ಯಾಟರಿ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ಸೆಟ್ಟಿಂಗ್ಗಳ ಪ್ಯಾನಲ್"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"ಡೆಸ್ಕ್ಟಾಪ್ ಮೋಡ್ ಅನ್ನು ಒತ್ತಾಯ ಮಾಡಿ"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ಸೆಕೆಂಡರಿ ಡಿಸ್ಪ್ಲೇಗಳಲ್ಲಿ ಪ್ರಾಯೋಗಿಕ ಡೆಸ್ಕ್ಟಾಪ್ ಮೋಡ್ ಅನ್ನು ಒತ್ತಾಯ ಮಾಡಿ"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೋಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೋಗಳಿಗಾಗಿ ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"ಎರಡನೇ ಡಿಸ್ಪ್ಲೇಯಲ್ಲಿ ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೋಯಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"ದ್ವಿತೀಯ ಡಿಸ್ಪ್ಲೇಯಲ್ಲಿ ಮಾತ್ರ ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೋಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ಬಹು-ವಿಂಡೋದಲ್ಲಿ ಮರುಗಾತ್ರಗೊಳಿಸಲು ಆಗದಿರುವುದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ಮರುಗಾತ್ರಗೊಳಿಸಲು ಆಗದ ಆ್ಯಪ್ಗಳನ್ನು ಬಹು-ವಿಂಡೋದಲ್ಲಿ ಇರಲು ಅನುಮತಿಸುತ್ತದೆ"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"ಫೋರ್ಸ್-ಡಾರ್ಕ್ ಅನ್ನು ಓವರ್ರೈಡ್ ಮಾಡಿ"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16KB ಡೆವಲಪರ್ ಆಯ್ಕೆಯನ್ನು ಬಳಸುವ ಮೊದಲು ಈ ಸಾಧನದ ಡೇಟಾ ಪಾರ್ಟಿಶನ್ ಅನ್ನು ext4 ಗೆ ಪರಿವರ್ತಿಸುವ ಅಗತ್ಯವಿದೆ. ಈ ಮೋಡ್ನಲ್ಲಿ ಸಾಫ್ಟ್ವೇರ್ ಇಂಟಿಗ್ರಿಟಿಯ ಭರವಸೆ ನೀಡಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಬೂಟ್ಲೋಡರ್ ಅನ್ಲಾಕ್ ಆಗಿರುವಾಗ ಫೋನ್ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಯಾವುದೇ ಡೇಟಾ ಅಪಾಯದಲ್ಲಿರಬಹುದು. 16KB ಆಯ್ಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಇದರ ನಂತರ ಮತ್ತೊಮ್ಮೆ ರೀಬೂಟ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಒಮ್ಮೆ ನೀವು ಈ ಮೋಡ್ನಲ್ಲಿದ್ದರೆ, ಒಂದೇ ರೀಬೂಟ್ನೊಂದಿಗೆ ನೀವು 4KB ಮತ್ತು 16KB ಮೋಡ್ಗಳ ನಡುವೆ ಹಿಂದಕ್ಕೆ ಮತ್ತು ಮುಂದಕ್ಕೆ ಬದಲಾಯಿಸಬಹುದು. ಈ ಮೋಡ್ಗಳಲ್ಲಿ ಕೆಲವು ಫೀಚರ್ ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ, ಹಾಗಾಗಿ ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು. ಸಾಧನವನ್ನು ಪ್ರೊಡಕ್ಷನ್ ಮೋಡ್ಗೆ ಹಿಂತಿರುಗಿಸಲು, ನೀವು 4KB ಮೋಡ್ಗೆ ಹಿಂತಿರುಗಿ ನಂತರ ಬೂಟ್ಲೋಡರ್ ಅನ್ನು ಲಾಕ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ, ಅದು ಸಾಧನವನ್ನು ಫ್ಯಾಕ್ಟರಿ ರೀಸೆಟ್ ಮಾಡುತ್ತದೆ. ಸಾಧನವು ಯಶಸ್ವಿಯಾಗಿ Android ಗೆ ಬೂಟ್ ಆದ ನಂತರ, ಡೆವಲಪರ್ ಆಯ್ಕೆಗಳಲ್ಲಿ OEM ಅನ್ಲಾಕಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ. ಸಾಧನವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ದೃಢೀಕರಣದ ನಂತರ ಫೈಲ್ಸಿಸ್ಟಮ್ ಅನ್ನು ext4 ಗೆ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. ಇದು ಪೂರ್ಣಗೊಂಡ ನಂತರ, ಮತ್ತೆ 16KB ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಹಿಂತಿರುಗಿ."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಅಳಿಸಿ"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ಡೇಟಾ ವಿಭಾಗವನ್ನು ext4 ಗೆ ಮರು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲು ಮತ್ತು ಅಳಿಸಲು ವಿಫಲವಾಗಿದೆ."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"ಬೂಟ್ಲೋಡರ್ ಅನ್ಲಾಕ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16KB ಡೆವಲಪರ್ ಆಯ್ಕೆಯನ್ನು ಬಳಸುವ ಮೊದಲು ಈ ಸಾಧನದಲ್ಲಿ ಬೂಟ್ಲೋಡರ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಬೇಕಾಗಿದೆ. ಈ ಮೋಡ್ನಲ್ಲಿ ಸಾಫ್ಟ್ವೇರ್ ಇಂಟಿಗ್ರಿಟಿಯ ಭರವಸೆ ನೀಡಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಬೂಟ್ಲೋಡರ್ ಅನ್ಲಾಕ್ ಆಗಿರುವಾಗ ಫೋನ್ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಯಾವುದೇ ಡೇಟಾ ಅಪಾಯದಲ್ಲಿರಬಹುದು. 16KB ಮೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವಾಗ ಎಲ್ಲಾ ಬಳಕೆದಾರರ ಡೇಟಾ ಮತ್ತು ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ಒಮ್ಮೆ ಬೂಟ್ಲೋಡರ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲಾದ ನಂತರ, 16KB ಆಯ್ಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಎರಡು ರೀಬೂಟ್ಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ. ಒಮ್ಮೆ ನೀವು ಈ ಮೋಡ್ನಲ್ಲಿದ್ದರೆ, ಒಂದೇ ರೀಬೂಟ್ನೊಂದಿಗೆ ನೀವು 4KB ಮತ್ತು 16KB ಮೋಡ್ಗಳ ನಡುವೆ ಹಿಂದಕ್ಕೆ ಮತ್ತು ಮುಂದಕ್ಕೆ ಬದಲಾಯಿಸಬಹುದು. ಈ ಮೋಡ್ಗಳಲ್ಲಿ ಕೆಲವು ಫೀಚರ್ ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ, ಹಾಗಾಗಿ ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು. ಸಾಧನವನ್ನು ಪ್ರೊಡಕ್ಷನ್ ಮೋಡ್ಗೆ ಹಿಂತಿರುಗಿಸಲು, ನೀವು 4KB ಮೋಡ್ಗೆ ಹಿಂತಿರುಗಬೇಕು ಮತ್ತು ನಂತರ OEM/ಬೂಟ್ಲೋಡರ್ ಸಾಧನವನ್ನು ಲಾಕ್ (ಫ್ಯಾಕ್ಟರಿ ರೀಸೆಟ್) ಮಾಡುತ್ತದೆ. ಬೂಟ್ಲೋಡರ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ. ಇದನ್ನು ಹೇಗೆ ಮಾಡುವುದು ಎಂಬುದರ ಸೂಚನೆಗಳನ್ನು ನೀವು <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> ಇಲ್ಲಿ ನೋಡಬಹುದು"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4KB ಪೇಜ್-ಅಗ್ನೋಸ್ಟಿಕ್ ಮೋಡ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತಿದೆ"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"ನೀವು ಪೇಜ್-ಅಗ್ನೋಸ್ಟಿಕ್ ಮೋಡ್ನ 4KB ಮೋಡ್ನಲ್ಲಿರುವಿರಿ. ಈ ಮೋಡ್ನಲ್ಲಿ ಸಾಫ್ಟ್ವೇರ್ ಇಂಟಿಗ್ರಿಟಿಯ ಭರವಸೆ ನೀಡಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಬೂಟ್ಲೋಡರ್ ಅನ್ಲಾಕ್ ಆಗಿರುವಾಗ ಫೋನ್ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಯಾವುದೇ ಡೇಟಾ ಅಪಾಯದಲ್ಲಿರಬಹುದು. ಈ ಮೋಡ್ಗಳಲ್ಲಿ ಕೆಲವು ಫೀಚರ್ ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ, ಹಾಗಾಗಿ ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು. ಪ್ರೊಡಕ್ಷನ್ ಮೋಡ್ ಅನ್ನು ಮರು-ಪ್ರವೇಶಿಸಲು, ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಬೂಟ್ಲೋಡರ್ ಅನ್ನು ನೀವು ಲಾಕ್ ಮಾಡಬೇಕು. ಇನ್ನಷ್ಟು ಓದಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"ನೀವು ಪೇಜ್-ಅಗ್ನೋಸ್ಟಿಕ್ ಮೋಡ್ನ 4KB ಮೋಡ್ನಲ್ಲಿರುವಿರಿ. ಈ ಮೋಡ್ನಲ್ಲಿ ಸಾಫ್ಟ್ವೇರ್ ಇಂಟಿಗ್ರಿಟಿಯ ಭರವಸೆ ನೀಡಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಬೂಟ್ಲೋಡರ್ ಅನ್ಲಾಕ್ ಆಗಿರುವಾಗ ಫೋನ್ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಯಾವುದೇ ಡೇಟಾ ಅಪಾಯದಲ್ಲಿರಬಹುದು. ಈ ಮೋಡ್ಗಳಲ್ಲಿ ಕೆಲವು ಫೀಚರ್ ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ, ಹಾಗಾಗಿ ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು. ಪ್ರೊಡಕ್ಷನ್ ಮೋಡ್ ಅನ್ನು ಮರು-ಪ್ರವೇಶಿಸಲು, ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಬೂಟ್ಲೋಡರ್ ಅನ್ನು ನೀವು ಲಾಕ್ ಮಾಡಬೇಕು. ಇದು ಸಾಧನವನ್ನು ಮತ್ತೆ ಫ್ಯಾಕ್ಟರಿ ರೀಸೆಟ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಪ್ರೊಡಕ್ಷನ್ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ. ಸಾಧನವು ಯಶಸ್ವಿಯಾಗಿ Android ಗೆ ಬೂಟ್ ಆದ ನಂತರ, ಡೆವಲಪರ್ ಆಯ್ಕೆಗಳಲ್ಲಿ OEM ಅನ್ಲಾಕಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ. ಸಾಧನವು Android ಗೆ ಬೂಟ್ ಮಾಡಲು ವಿಫಲವಾದಲ್ಲಿ ಅಥವಾ ಅಸ್ಥಿರವಾಗಿದ್ದರೆ, <a href=\"https://developers.google.com/android/images\">https://developers ನಿಂದ ಇತ್ತೀಚಿನ ಫ್ಯಾಕ್ಟರಿ ಚಿತ್ರಗಳೊಂದಿಗೆ ಸಾಧನವನ್ನು ಮರು-ಫ್ಲಾಶ್ ಮಾಡಿ .google.com/android/images</a> ಅಥವಾ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ಮತ್ತು \'ವೈಪ್ ಡಿವೈಸ್\', \'ಲಾಕ್ ಬೂಟ್ಲೋಡರ್\' ಮತ್ತು \'ಎಲ್ಲಾ ಪಾರ್ಟಿಶನ್ಗಳನ್ನು ಫೋರ್ಸ್ ಫ್ಲ್ಯಾಶ್ ಮಾಡಿ\' ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16KB ಪೇಜ್-ಅಗ್ನೋಸ್ಟಿಕ್ ಮೋಡ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತಿದೆ"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"ನೀವು ಪೇಜ್-ಅಗ್ನಾಸ್ಟಿಕ್ ಮೋಡ್ನ 16KB ಮೋಡ್ನಲ್ಲಿರುವಿರಿ. ಈ ಮೋಡ್ನಲ್ಲಿ ಸಾಫ್ಟ್ವೇರ್ ಇಂಟಿಗ್ರಿಟಿಯ ಭರವಸೆ ನೀಡಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಬೂಟ್ಲೋಡರ್ ಅನ್ಲಾಕ್ ಆಗಿರುವಾಗ ಫೋನ್ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಯಾವುದೇ ಡೇಟಾ ಅಪಾಯದಲ್ಲಿರಬಹುದು. ಈ ಮೋಡ್ಗಳಲ್ಲಿ ಕೆಲವು ಫೀಚರ್ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ, ಹಾಗಾಗಿ ಕೆಲವು ಆ್ಯಪ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು. ಪ್ರೊಡಕ್ಷನ್ ಮೋಡ್ ಅನ್ನು ಮರು-ಪ್ರವೇಶಿಸಲು, ನೀವು 4KB ಮೋಡ್ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ನಂತರ ಸಾಧನದ ಬೂಟ್ಲೋಡರ್ ಅನ್ನು ಲಾಕ್ ಮಾಡಬೇಕು. ಇನ್ನಷ್ಟು ಓದಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"ನೀವು ಪೇಜ್-ಅಗ್ನಾಸ್ಟಿಕ್ ಮೋಡ್ನ 16KB ಮೋಡ್ನಲ್ಲಿರುವಿರಿ. ಈ ಮೋಡ್ನಲ್ಲಿ ಸಾಫ್ಟ್ವೇರ್ ಇಂಟಿಗ್ರಿಟಿಯ ಭರವಸೆ ನೀಡಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಬೂಟ್ಲೋಡರ್ ಅನ್ಲಾಕ್ ಆಗಿರುವಾಗ ಫೋನ್ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಯಾವುದೇ ಡೇಟಾ ಅಪಾಯದಲ್ಲಿರಬಹುದು. ಈ ಮೋಡ್ಗಳಲ್ಲಿ ಕೆಲವು ಫೀಚರ್ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ, ಹಾಗಾಗಿ ಕೆಲವು ಆ್ಯಪ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು. ಪ್ರೊಡಕ್ಷನ್ ಮೋಡ್ ಅನ್ನು ಮರು-ಪ್ರವೇಶಿಸಲು, ನೀವು 4KB ಮೋಡ್ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ನಂತರ ಸಾಧನದ ಬೂಟ್ಲೋಡರ್ ಅನ್ನು ಲಾಕ್ ಮಾಡಬೇಕು. ಇದು ಸಾಧನವನ್ನು ಮತ್ತೆ ಫ್ಯಾಕ್ಟರಿ ರೀಸೆಟ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಪ್ರೊಡಕ್ಷನ್ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ. ಸಾಧನವು ಯಶಸ್ವಿಯಾಗಿ Android ಗೆ ಬೂಟ್ ಆದ ನಂತರ, ಡೆವಲಪರ್ ಆಯ್ಕೆಗಳಲ್ಲಿ OEM ಅನ್ಲಾಕಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ. ಸಾಧನವು Android ಗೆ ಬೂಟ್ ಮಾಡಲು ವಿಫಲವಾದಲ್ಲಿ ಅಥವಾ ಸ್ಥಿರವಾಗಿಲ್ಲದಿದ್ದರೆ, <a href=\"https://developers.google.com/android/images\">https://developers ನಿಂದ ಇತ್ತೀಚಿನ ಫ್ಯಾಕ್ಟರಿ ಚಿತ್ರಗಳೊಂದಿಗೆ ಸಾಧನವನ್ನು ಮರು-ಫ್ಲಾಶ್ ಮಾಡಿ .google.com/android/images</a> ಅಥವಾ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ಮತ್ತು \'ವೈಪ್ ಡಿವೈಸ್\', \'ಲಾಕ್ ಬೂಟ್ಲೋಡರ್\' ಮತ್ತು \'ಎಲ್ಲಾ ಪಾರ್ಟಿಶನ್ಗಳನ್ನು ಫೋರ್ಸ್ ಫ್ಲ್ಯಾಶ್ ಮಾಡಿ\' ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB ಪೇಜ್-ಅಗ್ನೋಸ್ಟಿಕ್ ಮೋಡ್"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"ಇನ್ನಷ್ಟು ಓದಿ"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"ಬಗ್ ವರದಿ ಹ್ಯಾಂಡ್ಲರ್"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಡಾಕ್ ಮಾಡಿದಾಗ ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನ ಮೇಲೆ ನಿಮಗೇನು ಕಾಣಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ. ಸ್ಕ್ರೀನ್ ಸೇವರ್ ಬಳಸಿದಾಗ ನಿಮ್ಮ ಸಾಧನ ಹೆಚ್ಚಿನ ಶಕ್ತಿಯನ್ನು ಬಳಸಬಹುದು."</string>
<string name="customize_button_title" msgid="1110284655990203359">"ಕಸ್ಟಮೈಸ್ ಮಾಡಿ"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ಕಸ್ಟಮೈಸ್ ಮಾಡಿ"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ಫ್ರೀಫಾರ್ಮ್ ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ರೀಬೂಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ಸೆಕೆಂಡರಿ ಡಿಸ್ಪ್ಲೇಗಳಲ್ಲಿ ಡೆಸ್ಕ್ಟಾಪ್ ಮೋಡ್ ಅನ್ನು ಬಲವಂತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲು ರೀಬೂಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"ಲೆಗಸಿ ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೊಯಿಂಗ್ ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ರೀಬೂಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೊಯಿಂಗ್ ಬೆಂಬಲವನ್ನು ಬದಲಾಯಿಸಲು ರೀಬೂಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"ಸೆಕೆಂಡರಿ ಡಿಸ್ಪ್ಲೇಗಳಲ್ಲಿ ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೊಯಿಂಗ್ ಅನ್ನು ಬಲವಂತವಾಗಿ ರೀಬೂಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ಈಗಲೇ ರೀಬೂಟ್ ಮಾಡಿ"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ನಂತರ ರೀಬೂಟ್ ಮಾಡಿ"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ಸ್ಪೇಷಿಯಲ್ ಆಡಿಯೋ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index c4cb4fb..695e8ea 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"얼굴 및 <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"얼굴, 지문, <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"얼굴, 지문, <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"신원 확인이 설정되어 필수입니다."</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"옵션"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"접근성"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"물리적 키보드"</string>
- <string name="show_ime" msgid="4334255501724746849">"터치 키보드 사용"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"물리적 키보드가 활성 상태인 경우 화면에 켜 둠"</string>
<string name="bounce_keys" msgid="7419450970351743904">"바운스 키"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g>밀리초 이내에 동일한 키를 빠르게 반복해서 누를 시 키보드에서 이를 무시합니다."</string>
<string name="slow_keys" msgid="2891452895499690837">"느린 키"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"무시하고 계속하기"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"취소"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"확대 설정"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"한 손가락으로 돋보기 이동"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"한 손가락으로 드래그하여 화면을 움직입니다"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"한 손가락으로 드래그하여 확대 영역을 이동하세요."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"두 손가락으로 드래그하여 확대 영역을 이동하세요."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"화면의 일부만 확대하는 동안에는 사용할 수 없음"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"버튼을 탭하여 확대/축소"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"화면을 빠르게 확대하여 콘텐츠를 더 크게 표시합니다."</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>확대하는 방법:</b><br/> {0,number,integer}. 바로가기를 사용하여 확대를 시작합니다.<br/> {1,number,integer}. 화면을 탭합니다.<br/> {2,number,integer}. 두 손가락으로 드래그하여 화면을 움직입니다.<br/> {3,number,integer}. 두 손가락을 모아서 배율을 조정합니다.<br/> {4,number,integer}. 바로가기를 사용하여 확대를 멈춥니다.<br/><br/> <b>일시적으로 확대하는 방법:</b><br/> {0,number,integer}. 확대 유형이 전체 화면으로 설정되어 있어야 합니다.<br/> {1,number,integer}. 바로가기를 사용하여 확대를 시작합니다.<br/> {2,number,integer}. 화면 아무 곳이나 길게 터치합니다.<br/> {3,number,integer}. 손가락으로 드래그하여 화면을 움직입니다.<br/> {4,number,integer}. 손가락을 떼어 확대를 멈춥니다."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>확대하는 방법:</b><br/> {0,number,integer}. 단축키를 사용하여 확대를 시작합니다.<br/> {1,number,integer}. 화면을 탭합니다.<br/> {2,number,integer}. 두 손가락으로 드래그하여 화면을 움직입니다.<br/> {3,number,integer}. 두 손가락을 모으거나 벌려서 확대/축소 배율을 조정합니다.<br/> {4,number,integer}. 단축키를 사용해 확대를 멈춥니다.<br/><br/> 일시적으로 확대하는 등의 작업을 수행할 수도 있습니다."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>확대하는 방법:</b><br/> {0,number,integer}. 단축키를 사용하여 확대를 시작합니다.<br/> {1,number,integer}. 화면을 탭합니다.<br/> {2,number,integer}. 한 손가락 또는 두 손가락으로 드래그하여 화면을 움직입니다.<br/> {3,number,integer}. 두 손가락을 모으거나 벌려서 확대/축소 배율을 조정합니다.<br/> {4,number,integer}. 단축키를 사용해 확대를 멈춥니다.<br/><br/> 일시적으로 확대하는 등의 작업을 수행할 수도 있습니다."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"확대 기능을 사용 설정하면 화면을 확대할 수 있습니다.\n\n"<b>"화면을 확대하려면"</b>" 확대 기능을 시작한 다음 화면에서 아무 곳이나 탭합니다.\n"<ul><li>"스크롤하려면 2개 이상의 손가락으로 드래그합니다."</li>\n<li>"확대/축소 수준을 조정하려면 2개 이상의 손가락을 모읍니다."</li></ul>\n\n<b>"화면을 일시적으로 확대하려면"</b>" 확대를 시작한 다음 화면에서 아무 곳이나 길게 터치합니다.\n"<ul><li>"화면에서 이동하려면 드래그합니다."</li>\n<li>"축소하려면 손가락을 뗍니다."</li></ul>\n\n"키보드 또는 탐색 메뉴는 확대할 수 없습니다."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>페이지 중 <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>페이지"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"접근성 버튼 바로가기"</string>
@@ -3369,7 +3364,7 @@
<!-- no translation found for zen_modes_add_mode (4806287336036228772) -->
<skip />
<string name="zen_mode_settings_summary" msgid="6040862775514495191">"중요한 사람과 앱의 알림만 받기"</string>
- <string name="zen_mode_select_schedule" msgid="5135520719771212697">"활동 유형 선택"</string>
+ <string name="zen_mode_select_schedule" msgid="5135520719771212697">"활성화 유형 선택"</string>
<string name="zen_mode_select_schedule_time" msgid="1761728920617757652">"시간"</string>
<string name="zen_mode_select_schedule_time_example" msgid="3071816060919446355">"예: \"9시 30분부터 오후 5시까지\""</string>
<string name="zen_mode_select_schedule_calendar" msgid="4320676795917533667">"캘린더"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"모드 만들기"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"커스텀"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"방해 요소 제한"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"방해 금지 모드 사용 설정"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"알람 및 미디어 소리 예외"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"일정 설정"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"일정"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>시간 <xliff:g id="MINUTES">%2$d</xliff:g>분"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"자동으로 사용 설정"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"예약"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"특정 시간 동안 휴대전화 무음 설정"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"방해 금지 모드 규칙 설정"</string>
@@ -3429,7 +3425,7 @@
<string name="mode_dark_theme_summary" msgid="8428887193785431898">"어두운 배경에 밝은 텍스트를 표시하도록 OS와 앱을 전환합니다. 이렇게 하면 눈의 피로도를 낮출 수 있고, 일부 기기에서는 배터리를 크게 절약할 수 있습니다."</string>
<string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{디스플레이 변경사항 없음}=1{{effect_1}}=2{{effect_1} 및 {effect_2}}=3{{effect_1}, {effect_2}, {effect_3}}other{{effect_1}, {effect_2} 외 #개}}"</string>
<string name="mode_notification_filter_title" msgid="443728483176031977">"방해 금지 필터링"</string>
- <string name="mode_no_notification_filter" msgid="7119188047783404890">"방해 금지 필터링 안 함"</string>
+ <string name="mode_no_notification_filter" msgid="7119188047783404890">"방해 금지 필터링 안함"</string>
<string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"필터링한 알림에 대한 표시 옵션"</string>
<string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"방해 금지 모드 사용 시"</string>
<string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"알림 소리 차단"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"알림 열기"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"다시 알림 허용"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"앱 아이콘에 알림 표시 점 사용"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"대화창"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"대화창"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"이 대화를 대화창으로 표시"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"모두"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"앱에서 무시하도록 허용"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"예외 앱"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"앱 추가 선택"</string>
@@ -4086,7 +4086,7 @@
<string name="draw_overlay" msgid="7902083260500573027">"다른 앱 위에 표시"</string>
<string name="system_alert_window_settings" msgid="6458633954424862521">"다른 앱 위에 표시"</string>
<string name="permit_draw_overlay" msgid="4468994037192804075">"다른 앱 위에 표시 허용"</string>
- <string name="allow_overlay_description" msgid="1607235723669496298">"이 앱이 사용 중인 다른 앱 위에 표시되도록 허용합니다. 앱에서 내가 탭하는 위치를 확인하고 화면에 표시되는 내용을 변경할 수 있습니다."</string>
+ <string name="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>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"케이스"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"배터리"</string>
<string name="settings_panel_title" msgid="346363079938069215">"설정 패널"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"데스크톱 모드 강제 사용"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"보조 디스플레이에서 실험적 데스크톱 모드 강제 사용"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"자유 형식 창 사용"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"자유 형식 창 지원을 사용하도록 설정합니다."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"보조 디스플레이에서 자유 형식 창 모드 사용"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"보조 디스플레이에서만 자유 형식 창을 사용하도록 설정합니다."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"멀티 윈도우에서 크기 조정 불가 앱 사용"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"멀티 윈도우에서 크기 조정 불가 앱 허용"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"강제로 어둡게 재정의"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16KB 개발자 옵션을 사용하기 전에 이 기기의 데이터 파티션을 ext4로 변환해야 합니다. 이 모드에서는 소프트웨어 무결성이 보장되지 않기 때문에 부트로더가 잠금 해제된 상태에서는 휴대전화에 저장된 모든 데이터가 위험에 노출될 수 있습니다. 16KB 옵션을 활성화하려면 이후에 한 번 더 재부팅해야 합니다. 이 모드에서는 한 번의 재부팅으로 4KB와 16KB 모드 사이를 오가며 전환할 수 있습니다. 이 모드에서는 일부 기능이 사용 중지되므로 일부 애플리케이션이 작동하지 않을 수 있습니다. 기기를 프로덕션 모드로 되돌리려면 4KB 모드로 다시 전환한 후 부트로더를 잠가야 하며, 이렇게 하면 기기가 초기화됩니다. 기기를 Android로 부팅 완료한 후에는 개발자 옵션에서 OEM 잠금 해제를 사용 중지하세요. 확인 후에는 기기가 완전 삭제되며 파일 시스템이 ext4로 변경됩니다. 이 과정을 완료한 후에는 다시 돌아와 16KB를 사용 설정하세요."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"모든 데이터 삭제"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"데이터 파티션을 ext4로 재포맷하고 완전 삭제할 수 없습니다."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"부트로더를 잠금 해제해야 합니다"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16KB 개발자 옵션을 사용하려면 이 기기의 부트로더가 잠금 해제되어 있어야 합니다. 이 모드에서는 소프트웨어 무결성이 보장되지 않기 때문에 부트로더가 잠금 해제된 상태에서 휴대전화에 저장된 모든 데이터가 위험에 노출될 수 있습니다. 16KB 모드를 활성화하면 모든 사용자 데이터와 설정이 완전 삭제됩니다. 부트로더가 잠금 해제되고 나서 16KB 옵션을 활성화하려면 두 번 재부팅해야 합니다. 이 모드에서는 한 번의 재부팅으로 4KB와 16KB 모드 사이를 오가며 전환할 수 있습니다. 이 모드에서는 일부 기능이 사용 중지되므로 일부 애플리케이션이 작동하지 않을 수 있습니다. 기기를 프로덕션 모드로 되돌리려면 4KB 모드로 다시 전환한 후 OEM/부트로더로 기기를 잠가 초기화해야 합니다. 부트로더를 잠금 해제한 후 다시 시도해 주세요. <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>에서 방법에 대한 안내를 참고하세요."</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"페이지에 구속받지 않는 4KB 모드 사용"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"현재 페이지에 구속받지 않는 4KB 모드입니다. 이 모드에서는 소프트웨어 무결성이 보장되지 않기 때문에 부트로더가 잠금 해제된 상태에서는 휴대전화에 저장된 모든 데이터가 위험에 노출될 수 있습니다. 이 모드에서는 일부 기능이 사용 중지되므로 일부 애플리케이션이 작동하지 않을 수 있습니다. 프로덕션 모드로 다시 들어가려면 기기의 부트로더를 잠가야 합니다. 탭하여 자세히 알아보세요."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"현재 페이지에 구속받지 않는 4KB 모드입니다. 이 모드에서는 소프트웨어 무결성이 보장되지 않기 때문에 부트로더가 잠금 해제된 상태에서는 휴대전화에 저장된 모든 데이터가 위험에 노출될 수 있습니다. 이 모드에서는 일부 기능이 사용 중지되므로 일부 애플리케이션이 작동하지 않을 수 있습니다. 프로덕션 모드로 다시 들어가려면 기기의 부트로더를 잠가야 합니다. 이렇게 하면 기기가 다시 초기화되고 프로덕션 설정으로 복원됩니다. 기기를 Android로 부팅 완료한 후에는 개발자 옵션에서 OEM 잠금 해제를 사용 중지하세요. 기기가 Android로 부팅되지 않거나 불안정한 경우 <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>의 최신 공장 출고 시 이미지로 기기를 다시 플래시하거나 <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>을 사용하여 \'Wipe Device\'(기기 완전 삭제), \'Lock Bootloader\'(부트로더 잠금), \'Force Flash all partitions\'(모든 파티션 강제 플래시)를 선택하세요."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"페이지에 구속받지 않는 16KB 모드 사용"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"현재 페이지 크기에 구속받지 않는 16KB 모드입니다. 이 모드에서는 소프트웨어 무결성이 보장되지 않기 때문에 부트로더가 잠금 해제된 상태에서는 휴대전화에 저장된 모든 데이터가 위험에 노출될 수 있습니다. 이 모드에서는 일부 기능이 사용 중지되므로 일부 애플리케이션이 작동하지 않을 수 있습니다. 프로덕션 모드로 다시 들어가려면 4KB 모드로 다시 전환한 후 기기의 부트로더를 잠가야 합니다. 탭하여 자세히 알아보세요."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"현재 페이지 크기에 구속받지 않는 16KB 모드입니다. 이 모드에서는 소프트웨어 무결성이 보장되지 않기 때문에 부트로더가 잠금 해제된 상태에서는 휴대전화에 저장된 모든 데이터가 위험에 노출될 수 있습니다. 이 모드에서는 일부 기능이 사용 중지되므로 일부 애플리케이션이 작동하지 않을 수 있습니다. 프로덕션 모드로 다시 들어가려면 4KB 모드로 다시 전환한 후 기기의 부트로더를 잠가야 합니다. 이렇게 하면 기기가 다시 초기화되고 프로덕션 설정으로 복원됩니다. 기기를 Android로 부팅 완료한 후에는 개발자 옵션에서 OEM 잠금 해제를 사용 중지하세요. 기기가 Android로 부팅되지 않거나 불안정한 경우 <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>의 최신 공장 출고 시 이미지로 기기를 다시 플래시하거나 <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>을 사용하여 \'기기 완전 삭제\', \'부트로더 잠금\', \'모든 파티션 강제 플래시\'를 선택하세요."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"페이지에 구속받지 않는 16KB 모드"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"자세히 알아보기"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"버그 신고 핸들러"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"태블릿이 도킹되었을 때 화면에 표시할 항목을 선택하세요. 화면 보호기를 사용하면 기기에서 더 많은 에너지를 사용할 수 있습니다."</string>
<string name="customize_button_title" msgid="1110284655990203359">"맞춤설정"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> 맞춤설정"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"자유 형식 지원을 사용 설정하려면 재부팅해야 합니다."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"보조 디스플레이에서 데스크톱 모드를 강제 실행하려면 재부팅해야 합니다."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"레거시 자유 형식 창 모드 지원을 사용하려면 재부팅해야 합니다."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"자유 형식 창 모드 지원을 변경하려면 재부팅해야 합니다."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"보조 디스플레이에서 자유 형식 창 모드를 강제 실행하려면 재부팅해야 합니다."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"지금 재부팅"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"나중에 재부팅"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"공간 음향"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 2f8aadf..0607e79 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Жүз жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Жүз, манжа издери жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Жүз, манжа издери жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Өздүгүн текшерүү күйгүзүлгөндүктөн, бул керек"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Колдонмолорду орнотуу"</b>\n"Жеке мейкиндикте купуя сактагыңыз келген колдонмолорду орнотуңуз"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Эскертүү"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Жеке мейкиндикти кулпулаганыңызда колдонмолор иштебей калат"</b>\n"Жеке мейкиндикти кулпулаганыңызда андагы колдонмолор иштебей калат жана алардан билдирмелерди албай каласыз"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Жеке мейкиндиктер фондук режимде иштеп же маанилүү билдирмелерди жөнөтүшү керек болгон колдонмолорго (мисалы, медициналык колдонмолор) ылайыксыз. Мындай мейкиндик кулпуланганда, фондогу аракеттер жана билдирмелер токтотулат.\n\nЖеке мейкиндик кулпуланганда андагы колдонмолор уруксаттарда, купуялык тактасында жана башка параметрлерде көрүнбөйт.\n\nЖеке мейкиндигиңизди жаңы түзмөккө жылдырууга болбойт. Башка түзмөктө колдонуу үчүн башка жеке мейкиндикти тууралашыңыз керек болот.\n\nЖеке мейкиндигиңизге түзмөгүңүзгө зыянкеч колдонмолорду орноткон же аны өз компьютерине кошуп алган адам кире алат."</string>
- <string name="private_space_settings_footer_text" msgid="3742468470394835356">"Жеке мейкиндиктер фондук режимде иштеп же маанилүү билдирмелерди жөнөтүшү керек болгон колдонмолорго (мисалы, медициналык колдонмолор) ылайыксыз. Мындай мейкиндик кулпуланганда фондогу аракеттер жана билдирмелер токтотулат.\n\nЖеке мейкиндик кулпуланганда андагы колдонмолор уруксаттарда, купуялык тактасында жана башка параметрлерде көрүнбөйт.\n\nЖеке мейкиндикти жаңы түзмөктө калыбына келтирүүгө болбойт. Башка түзмөктө колдонуу үчүн башка мейкиндикти тууралашыңыз керек.\n\nЖеке мейкиндигиңизге түзмөгүңүзгө зыянкеч колдонмолорду орноткон же аны өз компьютерине кошуп алган адам кире алат."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Жеке мейкиндиктер фондук режимде иштеп же маанилүү билдирмелерди жөнөтүшү керек болгон колдонмолорго (мисалы, медициналык колдонмолорго) жарабайт, себеби жеке мейкиндик кулпуланганда, фондогу аракеттер менен билдирмелер токтоп, жөнөтүлбөй калат.\n\nЖеке мейкиндик кулпуланганда, андагы колдонмолор уруксаттарда, купуялык тактасында жана башка параметрлерде көрүнбөй калат.\n\nЖеке мейкиндигиңизди жаңы түзмөккө өткөрө албаганыңыз менен, жаңысын түзө аласыз.\n\nЖеке мейкиндигиңизге түзмөгүңүзгө зыянкеч колдонмолорду орнотуп же аны өз компьютерине кошуп алган адам кире алат."</string>
+ <string name="private_space_settings_footer_text" msgid="3742468470394835356">"Жеке мейкиндиктер фондук режимде иштеп же маанилүү билдирмелерди жөнөтүшү керек болгон колдонмолорго (мисалы, медициналык колдонмолорго) жарабайт, себеби жеке мейкиндик кулпуланганда, фондогу аракеттер менен билдирмелер токтоп, жөнөтүлбөй калат.\n\nЖеке мейкиндик кулпуланганда, андагы колдонмолор уруксаттарда, купуялык тактасында жана башка параметрлерде көрүнбөй калат.\n\nЖеке мейкиндигиңизди жаңы түзмөккө өткөрө албаганыңыз менен, жаңысын түзө аласыз.\n\nЖеке мейкиндигиңизге түзмөгүңүзгө зыянкеч колдонмолорду орнотуп же аны өз компьютерине кошуп алган адам кире алат."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Жеке мейкиндик тууралуу кеңири маалымат"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Буга аз эле убакыт кетет"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"Жеке мейкиндик туураланууда…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Параметрлер"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Атайын мүмкүнчүлүктөр"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Аппараттык баскычтоп"</string>
- <string name="show_ime" msgid="4334255501724746849">"Экрандагы баскычтопту колдонуу"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Баскычтоп иштетилгенде экранда көрүнүп турат"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Кайтаруу баскычтары"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мсек. ичинде баскычтын удаа басылганы этибарга алынбайт"</string>
<string name="slow_keys" msgid="2891452895499690837">"Жай баскычтар"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Баары бир улантуу"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Жок"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Чоңойтуу параметрлери"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Лупаны 1 манжаңыз менен жылдырыңыз"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Экрандын башка бөлүгүнө 1 манжаңыз менен жылыңыз"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Чоңойтуу аймагын бир манжаңыз менен сүйрөп жылдырыңыз."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Чоңойтуу аймагын эки манжаңыз менен сүйрөп жылдырыңыз."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Экрандын бир бөлүгүн гана чоңойткондо жеткиликсиз"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Чоңойтуп/кичирейтүү үчүн баскычты басыңыз"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Экранды оңой чоңойто аласыз"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Жакындатуу үчүн:</b><br/> {0,number,integer}. Чоңойтуу режимин иштетүү үчүн ыкчам баскычты басыңыз<br/> {1,number,integer}. Экранды басыңыз<br/> {2,number,integer}. Экрандын башка бөлүгүнө 2 манжаңыз менен жылыңыз<br/> {3,number,integer}. Чоңойтуп/кичирейтүү үчүн 2 манжаңызды бириктириңиз<br/> {4,number,integer}. Чоңойтуу режиминен чыгуу үчүн ыкчам баскычты басыңыз<br/><br/> <b>Убактылуу жакындатуу үчүн:</b><br/> {0,number,integer}. Чоңойтуу режими толук экранга орнотулганын текшериңиз<br/> {1,number,integer}. Чоңойтуу режимин иштетүү үчүн ыкчам баскычты басыңыз<br/> {2,number,integer}. Экрандын бир жерин коё бербей басып туруңуз<br/> {3,number,integer}. Экрандын башка бөлүгүнө манжаңыз менен жылыңыз<br/> {4,number,integer}. Чоңойтуу режиминен чыгуу үчүн манжаңызды көтөрүп коюңуз"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Жакындатуу үчүн:</b><br/> {0,number,integer}. Чоңойтуу режимин иштетүү үчүн ыкчам баскычты басыңыз<br/> {1,number,integer}. Экранды басыңыз<br/> {2,number,integer}. Экрандын башка бөлүгүнө 2 манжаңыз менен жылыңыз<br/> {3,number,integer}. Чоңойтуп/кичирейтүү үчүн 2 манжаңызды бириктириңиз<br/> {4,number,integer}. Чоңойтуу режиминен чыгуу үчүн ыкчам баскычты басыңыз<br/><br/> Ошондой эле, убактылуу жакындатып жана башка аракеттерди аткара аласыз."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Жакындатуу үчүн:</b><br/> {0,number,integer}. Чоңойтуу режимин иштетүү үчүн ыкчам баскычты басыңыз<br/> {1,number,integer}. Экранды басыңыз<br/> {2,number,integer}. Экрандын башка бөлүгүнө 1 же 2 манжаңыз менен жылыңыз<br/> {3,number,integer}. Чоңойтуп/кичирейтүү үчүн 2 манжаңызды бириктириңиз<br/> {4,number,integer}. Чоңойтуу режиминен чыгуу үчүн ыкчам баскычты басыңыз<br/><br/> Ошондой эле, убактылуу жакындатып жана башка аракеттерди аткара аласыз."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Бул функциянын жардамы менен, экрандагы нерсени чоңойтуп, кичирейте аласыз.\n\n"<b>"Чоңойткуңуз келсе"</b>", кызматты иштетип туруп, экрандын бир жерин басыңыз.\n"<ul><li>"Чоңойгон жерди ары-бери жылдырып көргүңүз келсе, экранды эки же үч манжаңыз менен сүрүңүз."</li>\n<li>"Чоңойтуп/кичирейтүү үчүн эки же үч манжаңызды бириктирип/ажыратыңыз."</li></ul>\n\n<b>"Убактылуу чоңойтуп/кичирейтүү үчүн"</b>" кызматты иштетип, экрандын бир жерин коё бербей басып туруңуз.\n"<ul><li>"Экранды жылдырып көрүү үчүн аны манжаңыз менен сүрүңүз."</li>\n<li>"Кызматты өчүрүү үчүн манжаңызды көтөрүңүз."</li></ul>\n\n"Баскычтопто же чабыттоо тилкесинде көрүнүш чоңойбойт."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> ичинен <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>-барак"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Атайын мүмкүнчүлүктөр ыкчам баскычы"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Режим түзүү"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Жеке"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Билдирмелерди чектөө"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\"Тынчымды алба\" режимин күйгүзүү"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Ойготкучтар менен медиа добуштар үзгүлтүккө учуратышы мүмкүн"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"График түзүү"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"График"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> с. <xliff:g id="MINUTES">%2$d</xliff:g> мүн."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Автоматтык түрдө күйөт"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ырааттама"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Телефондун үнүн өчүрүүнү жөндөө"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"\"Тынчымды алба\" режиминин эрежелерин коюу"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"билдирмени ачуу"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Билдирмени тындырууга уруксат берүү"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Колдонмонун сүрөтчөсүндөгү билдирменин белгиси"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Билдирмелердин топтомдору"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Калкып чыкма билдирмелер"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Калкып чыкма билдирмелер"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Калкып чыкма билдирмелерди көрсөтүү"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Баары"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Колдонмолорго өзгөртүп коюуга уруксат берүү"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"\"Тынчымды алба\" режими таасир этпеген колдонмолор"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Дагы колдонмолорду тандаңыз"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Кутуча"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарея"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Параметрлер панели"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Иш такта режимин күйгүзүү"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Иш тактанын сынамык режими көмөкчү экрандарда мажбурлап иштетилет"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Эркин формадагы терезелерди түзүүнү иштетүү"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Эркин формадагы терезелерди түзүүнү иштетиңиз."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Эркин формадагы терезелерди экинчи экранда түзүүнү иштетүү"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Эркин формадагы терезелерди кошумча экранда гана түзүүнү иштетүү."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Өлчөмү өзгөрбөгөн колдонмолорду бир нече терезеде иштетүү"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Өлчөмү өзгөрбөгөн колдонмолор бир нече терезеде көрүнөт"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Түнкү режимди мажбурлап иштетүү функциясын өзгөртүп коюу"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Бул түзмөктүн маалымат камтылган катуу диск бөлүгү 16Kб өлчөмүндөгү иштеп чыгуучунун параметрин колдонуудан мурун ext4 форматына өзгөртүлүшү керек. Бул режимде программанын бүтүндүгүнө кепилдик берилбейт. Операциялык тутумду жүктөгүчтүн кулпусу ачылып турганда телефондо сакталган бардык маалыматтар коркунучта болушу мүмкүн. 16Kб параметрин иштетүү үчүн дагы бир жолу өчүрүп-күйгүзүү талап кылынат. Бул режимге өткөндөн кийин, бир жолу өчүрүп-күйгүзүү менен 4Kб жана 16Kб режимдеринин арасында которула аласыз. Бул режимдерде айрым функциялар өчүрүлөт, андыктан кээ бир колдонмолор иштебей калышы мүмкүн. Түзмөктү өндүрүш режимине кайтаруу үчүн кайра 4Кб режимине которулуп, түзмөктү баштапкы абалга келтирген операциялык тутумду жүктөгүчтү кулпулашыңыз керек болот. Түзмөк Android\'ге ийгиликтүү жүктөлгөндөн кийин, иштеп чыгуучунун параметрлеринен OEM ачууну өчүрүңүз. Ырастоодон кийин түзмөк тазаланат жана файл системасы ext4 форматына өзгөртүлөт. Бул процесс аяктагандан кийин, 16Кб режимин кайра иштетүү үчүн кайтыңыз."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Бардык нерселерди өчүрүү"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Кайра форматталбай жана катуу диск бөлүгүндөгү маалымат ext4 үчүн тазаланбай калды."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Операциялык тутумду жүктөгүчтүн кулпусун ачуу талап кылынат"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Беттин өлчөмүн 16 кБка өзгөртүп, иштеп чыгуучуларга арналган параметрди колдонуудан мурун, түзмөктөгү операциялык системаны жүктөгүчтүн кулпусун ачыңыз. Бул режимде программанын бүтүндүгүнө кепилдик бере албайбыз. Операциялык системаны жүктөгүчтүн кулпусу ачылып турганда телефондо сакталган бардык нерселер коркунучта болушу мүмкүн. Беттин өлчөмүн 16 кБ көбөйткөндө, колдонуучунун бардык нерселери жана параметрлери өчүп калат. Операциялык системаны жүктөгүчтүн кулпусу ачылгандан кийин түзмөктү эки жолу өчүрүп күйгүзүшүңүз керек. Бул режимде беттин өлчөмүн 4 кБтан 16 кБка которуу үчүн түзмөктү бир жолу өчүрүп күйгүзүшүңүз керек. Кээ бир функциялар өчүп калгандыктан, айрым колдонмолор иштебей калышы мүмкүн. Түзмөктү баштапкы абалга кайтаруу үчүн беттин өлчөмүн кайра 4 кБ режимине которуп, операциялык системаны жүктөгүчтү кулпулашыңыз керек. Операциялык системаны жүктөгүчтүн кулпусун ачып, кайталап көрүңүз. Бул жөнүндө кененирээк маалымат алгыңыз келсе, бул жерге өтүңүз: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Беттен көз карандысыз 4Кб өлчөмүндөгү режимди колдонуу"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Беттен көз карандысыз режиминин 4Кб өлчөмүндөгү режиминдесиз. Бул режимде программанын бүтүндүгүнө кепилдик берилбейт. Операциялык тутумду жүктөгүчтүн кулпусу ачылып турганда телефондо сакталган бардык маалыматтар коркунучта болушу мүмкүн. Бул режимдерде айрым функциялар өчүрүлөт, андыктан кээ бир колдонмолор иштебей калышы мүмкүн. Өндүрүш режимине кайра кирүү үчүн, түзмөктүн операциялык тутумунун жүктөгүчүн кулпулашыңыз керек. Көбүрөөк окуу үчүн таптаңыз."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Беттен көз карандысыз режиминин 4Кб өлчөмүндөгү режиминдесиз. Бул режимде программанын бүтүндүгүнө кепилдик берилбейт. Операциялык тутумду жүктөгүчтүн кулпусу ачылып турганда телефондо сакталган бардык маалыматтар коркунучта болушу мүмкүн. Бул режимдерде айрым функциялар өчүрүлөт, андыктан кээ бир колдонмолор иштебей калышы мүмкүн. Өндүрүш режимине кайра кирүү үчүн, түзмөктүн операциялык тутумунун жүктөгүчүн кулпулашыңыз керек. Бул түзмөктү кайра баштапкы абалга келтирип, өндүрүш параметрлерине кайтарат. Түзмөк Android\'ге ийгиликтүү жүктөлгөндөн кийин, иштеп чыгуучунун параметрлеринен OEM ачууну өчүрүңүз. Түзмөк Android\'ге жүктөлбөй калса же туруксуз болсо, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> дарегиндеги баштапкы сүрөттөр менен акыркы версияга кайтарып, \"Түзмөктү тазалоо\", \"Операциялык тутумду жүктөгүчтү кулпулоо\" жана \'Бардык бөлүктөрүн мажбурлап программалоо\" параметрлерин тандаңыз."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16 кБ өлчөмүндөгү бетке байланышпаган режимди колдонуу"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Беттин көлөмүнө көз каранды эмес режимдин 16 Кб режиминдесиз. Бул режимде программанын бүтүндүгүнө кепилдик берилбейт. Операциялык тутумду жүктөгүчтүн кулпусу ачылып турганда телефондо сакталган бардык маалыматтар коркунучта болушу мүмкүн. Бул режимдерде айрым функциялар өчүрүлөт, андыктан кээ бир колдонмолор иштебей калышы мүмкүн. Өндүрүш режимине кайра кирүү үчүн 4 Кб режимине кайтып, андан кийин түзмөктүн операциялык тутумунун жүктөгүчүн кулпулашыңыз керек. Көбүрөөк окуу үчүн таптаңыз."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Беттин көлөмүнө көз каранды эмес режимдин 16 Кб режиминдесиз. Бул режимде программанын бүтүндүгүнө кепилдик берилбейт. Операциялык тутумду жүктөгүчтүн кулпусу ачылып турганда телефондо сакталган бардык маалыматтар коркунучта болушу мүмкүн. Бул режимдерде айрым функциялар өчүрүлөт, андыктан кээ бир колдонмолор иштебей калышы мүмкүн. Өндүрүш режимине кайра кирүү үчүн 4 Кб режимине кайтып, андан кийин түзмөктүн операциялык тутумунун жүктөгүчүн кулпулашыңыз керек. Бул түзмөктү кайра баштапкы абалга келтирип, өндүрүш параметрлерине кайтарат. Түзмөк Android\'ге ийгиликтүү жүктөлгөндөн кийин, иштеп чыгуучунун параметрлеринен OEM ачууну өчүрүңүз. Түзмөк Android\'ге жүктөлбөй калса же туруксуз болсо, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> дарегиндеги баштапкы сүрөттөр менен акыркы версияга кайтарып, \"Түзмөктү тазалоо\", \"Операциялык тутумду жүктөгүчтү кулпулоо\" жана \'Бардык бөлүктөрүн мажбурлап программалоо\" параметрлерин тандаңыз."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Беттен көз карандысыз 16Кб өлчөмүндөгү режим"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Дагы окуу"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Мүчүлүштүк тууралуу кабар берүүнү иштеткич"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Планшет док бекетке туташып турганда экранда эмне көрүнөрүн тандаңыз. Көшөгө иштетилгенде, түзмөк көбүрөөк кубат керектеши мүмкүн."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Ыңгайлаштыруу"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ыңгайлаштыруу"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Эркин форма режиминде колдоону иштетүү үчүн өчүрүп-күйгүзүү керек."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Кошумча экрандарда иш такта режимин мажбурлап иштетүү үчүн өчүрүп-күйгүзүү керек."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Эркин формадагы эски терезелерди түзүүнү иштетүү үчүн өчүрүп-күйгүзүү талап кылынат."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Эркин формадагы терезелерди өзгөртүү үчүн өчүрүп-күйгүзүү талап кылынат."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Эркин формадагы терезелерди кошумча экрандарда түзүүнү иштетүү үчүн өчүрүп-күйгүзүү талап кылынат."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Азыр өчүрүп-күйгүзүү"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Кийинчерээк өчүрүп-күйгүзүү"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Мейкиндиктүү үн"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 8664b2b..cb57011 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ເພີ່ມໃບໜ້າ ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ເພີ່ມໃບໜ້າ, ລາຍນິ້ວມື ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ເພີ່ມໃບໜ້າ, ລາຍນິ້ວມື ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ຕ້ອງດຳເນີນການເນື່ອງຈາກການກວດສອບຕົວຕົນເປີດຢູ່"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"ຕົວເລືອກ"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ການຊ່ວຍເຂົ້າເຖິງ"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"ແປ້ນພິມພາຍນອກ"</string>
- <string name="show_ime" msgid="4334255501724746849">"ໃຊ້ແປ້ນພິມຢູ່ໜ້າຈໍ"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"ປະມັນໄວ້ໃນໜ້າຈໍເມື່ອໃຊ້ແປ້ນພິມພາຍນອກ"</string>
<string name="bounce_keys" msgid="7419450970351743904">"ປຸ່ມດີດກັບ"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"ແປ້ນພິມຈະລະເວັ້ນການກົດປຸ່ມດຽວຊ້ຳໆຢ່າງວ່ອງໄວພາຍໃນ <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"ເພີ່ມໄລຍະເວລາໃນການກົດປຸ່ມ"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ຢືນຢັນດຳເນີນການຕໍ່"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ຍົກເລີກ"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ການຕັ້ງຄ່າການຂະຫຍາຍ"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ໃຊ້ 1 ນິ້ວຍ້າຍແວ່ນຂະຫຍາຍ"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ໃຊ້ 1 ນິ້ວລາກເພື່ອຍ້າຍໄປອ້ອມຮອບໜ້າຈໍ"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ຍ້າຍພື້ນທີ່ການຂະຫຍາຍໂດຍການລາກໜຶ່ງນິ້ວ."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ຍ້າຍພື້ນທີ່ການຂະຫຍາຍໂດຍການລາກສອງນິ້ວ."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"ບໍ່ສາມາດໃຊ້ໄດ້ໃນລະຫວ່າງທີ່ກຳລັງຂະຫຍາຍພາກສ່ວນຂອງໜ້າຈໍ"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ແຕະປຸ່ມເພື່ອຊູມ"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ຊູມເຂົ້າໄວໆຢູ່ໜ້າຈໍເພື່ອເຮັດໃຫ້ເນື້ອຫາໃຫຍ່ຂຶ້ນ"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>ເພື່ອຊູມເຂົ້າ:</b><br/> {0,number,integer}. ໃຊ້ທາງລັດເພື່ອເລີ່ມການຂະຫຍາຍ<br/> {1,number,integer}. ແຕະໃສ່ໜ້າຈໍ<br/> {2,number,integer}. ລາກ 2 ນິ້ວເພື່ອເລື່ອນໄປມາຢູ່ໜ້າຈໍ<br/> {3,number,integer}. ບີບດ້ວຍ 2 ນິ້ວເພື່ອປັບແກ້ການຊູມ<br/> {4,number,integer}. ໃຊ້ທາງລັດເພື່ອຢຸດການຂະຫຍາຍ<br/><br/><b>ເພື່ອຊູມເຂົ້າຊົ່ວຄາວ:</b><br/> {0,number,integer}. ກວດສອບວ່າປະເພດການຂະຫຍາຍຂອງທ່ານແມ່ນຕັ້ງເປັນເຕັມຈໍແລ້ວ<br/> {1,number,integer}. ໃຊ້ທາງລັດເພື່ອເລີ່ມການຂະຫຍາຍ<br/> {2,number,integer}. ແຕະຢູ່ບ່ອນໃດກໍໄດ້ຢູ່ໜ້າຈໍຄ້າງໄວ້<br/> {3,number,integer}. ລາກນິ້ວເພື່ອເລື່ອນໄປມາຢູ່ໜ້າຈໍ<br/> {4,number,integer}. ຍົກນິ້ວຂຶ້ນເພື່ອຢຸດການຂະຫຍາຍ"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>ເພື່ອຊູມເຂົ້າ:</b><br/> {0,number,integer}. ໃຊ້ທາງລັດເພື່ອເລີ່ມການຂະຫຍາຍ<br/> {1,number,integer}. ແຕະໜ້າຈໍ<br/> {2,number,integer}. ໃຊ້ 2 ນິ້ວລາກເພື່ອຍ້າຍໄປອ້ອມຮອບໜ້າຈໍ<br/> {3,number,integer}. ໃຊ້ 2 ນິ້ວບີບເພື່ອປັບການຊູມ<br/> {4,number,integer}. ໃຊ້ທາງລັດເພື່ອຢຸດການຂະຫຍາຍ<br/><br/> ທ່ານຍັງສາມາດຊູມເຂົ້າຊົ່ວຄາວ ແລະ ເຮັດສິ່ງອື່ນໆໄດ້ນຳ."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>ເພື່ອຊູມເຂົ້າ:</b><br/> {0,number,integer}. ໃຊ້ທາງລັດເພື່ອເລີ່ມການຂະຫຍາຍ<br/> {1,number,integer}. ແຕະໜ້າຈໍ<br/> {2,number,integer}. ໃຊ້ 1 ຫຼື 2 ນິ້ວລາກເພື່ອຍ້າຍໄປອ້ອມຮອບໜ້າຈໍ<br/> {3,number,integer}. ໃຊ້ 2 ນິ້ວບີບເພື່ອປັບການຊູມ<br/> {4,number,integer}. ໃຊ້ທາງລັດເພື່ອຢຸດການຂະຫຍາຍ<br/><br/> ທ່ານຍັງສາມາດຊູມເຂົ້າຊົ່ວຄາວ ແລະ ເຮັດສິ່ງອື່ນໆໄດ້ນຳ."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"ເມື່ອເປີດໃຊ້ການຂະຫຍາຍແລ້ວ, ທ່ານສາມາດຊູມເຂົ້າຢູ່ໜ້າຈໍຂອງທ່ານໄດ້.\n\n"<b>"ເພື່ອຊູມ"</b>", ໃຫ້ເລີ່ມການຂະຫຍາຍ, ຈາກນັ້ນແຕະໃສ່ບ່ອນໃດກໍໄດ້ຢູ່ໜ້າຈໍ.\n"<ul><li>"ລາກ 2 ນິ້ວ ຫຼື ຫຼາຍກວ່ານັ້ນເພື່ອເລື່ອນ"</li>\n<li>"ຖ່າງ 2 ນິ້ວ ຫຼື ຫຼາຍກວ່ານັ້ນເພື່ອປັບແຕ່ງການຊູມ"</li></ul>\n\n<b>"ເພື່ອຊູມຊົ່ວຄາວ"</b>", ໃຫ້ເລີ່ມການຂະຫຍາຍ, ຈາກນັ້ນແຕະໃສ່ບ່ອນໃດກໍໄດ້ຢູ່ໜ້າຈໍຄ້າງໄວ້.\n"<ul><li>"ລາກເພື່ອຍ້າຍໄປມາຢູ່ໜ້າຈໍ"</li>\n<li>"ຍົກນິ້ວຂຶ້ນເພື່ອຊູມອອກ"</li></ul>\n\n"ທ່ານບໍ່ສາມາດຊູມໃສ່ແປ້ນພິມ ຫຼື ແຖບການນຳທາງໄດ້."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"ໜ້າທີ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> ຈາກທັງໝົດ <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ທາງລັດຂອງປຸ່ມການຊ່ວຍເຂົ້າເຖິງ"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"ສ້າງໂໝດ"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ກຳນົດເອງ"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"ຈຳກັດການລົບກວນ"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"ເປີດໂໝດຫ້າມລົບກວນ"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ສຽງໂມງປຸກ ແລະ ມີເດຍສາມາດລົບກວນໄດ້"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ຕັ້ງກຳນົດເວລາ"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"ກຳນົດເວລາ"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ຊມ, <xliff:g id="MINUTES">%2$d</xliff:g> ນທ"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"ເປີດໃຊ້ອັດຕະໂນມັດ"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ກຳນົດເວລາ"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"ປິດສຽງໂທລະສັບໃນບາງເວລາ"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"ຕັ້ງກົດຂອງການຫ້າມລົບກວນ"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"ເປີດການແຈ້ງເຕືອນ"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"ອະນຸຍາດໃຫ້ເລື່ອນການແຈ້ງເຕືອນ"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ໄອຄອນຈຸດການແຈ້ງເຕືອນຢູ່ແອັບ"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"ກຸ່ມການແຈ້ງເຕືອນ"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ສະແດງການສົນທະນານີ້ເປັນຟອງ"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ທັງໝົດ"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ອະນຸຍາດໃຫ້ແອັບຍົກເລີກໄດ້"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ແອັບທີ່ສາມາດລົບກວນໄດ້"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ເລືອກແອັບເພີ່ມເຕີມ"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"ເຄສ"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ແບັດເຕີຣີ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ແຜງການຕັ້ງຄ່າ"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"ບັງຄັບໂໝດເດັສທັອບ"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ບັງຄັບໂໝດເດັສທັອບແບບທົດລອງໃຊ້ຢູ່ໜ້າຈໍທີສອງ"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"ເປີດການນຳໃຊ້ໜ້າຈໍຮູບແບບອິດສະຫຼະ"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"ເປີດການນຳໃຊ້ການຮອງຮັບໜ້າຈໍຮູບແບບອິດສະຫຼະ."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"ເປີດການນຳໃຊ້ໜ້າຈໍຮູບແບບອິດສະຫຼະຢູ່ຈໍສະແດງຜົນສຳຮອງ"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"ເປີດການນຳໃຊ້ໜ້າຈໍຮູບແບບອິດສະຫຼະຢູ່ຈໍສະແດງຜົນສຳຮອງເທົ່ານັ້ນ."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ເປີດການນຳໃຊ້ແບບບໍ່ສາມາດປັບຂະໜາດໃນການໃຊ້ຫຼາຍໜ້າຈໍ"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ອະນຸຍາດໃຫ້ມີແອັບແບບບໍ່ສາມາດປັບຂະໜາດໄດ້ໃນການໃຊ້ຫຼາຍໜ້າຈໍ"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"ຍົກເລີກການບັງຄັບໃຫ້ໃຊ້ແບບມືດ"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"ພາທິຊັນຂໍ້ມູນຂອງອຸປະກອນນີ້ຈະຕ້ອງປ່ຽນແປງເປັນ ext4 ກ່ອນທີ່ຈະໃຊ້ຕົວເລືອກນັກພັດທະນາແບບ 16KB. ບໍ່ຮັບປະກັນຄວາມສົມບູນຂອງຊອບແວໃນໂໝດນີ້ ແລະ ຂໍ້ມູນໃດກໍຕາມທີ່ຈັດເກັບໃນໂທລະສັບໃນລະຫວ່າງທີ່ bootloader ປົດລັອກຢູ່ອາດມີຄວາມສ່ຽງ. ການເປີດນຳໃຊ້ຕົວເລືອກ 16KB ຈະຕ້ອງມີການປິດເປີດໃໝ່ອີກເທື່ອໜຶ່ງຫຼັງຈາກນີ້. ເມື່ອທ່ານຢູ່ໃນໂໝດນີ້ແລ້ວ, ທ່ານສາມາດປ່ຽນໄປມາລະຫວ່າງໂໝດ 4KB ແລະ 16KB ໄດ້ໂດຍການປິດເປີດໃໝ່ເທື່ອດຽວ. ຄຸນສົມບັດບາງຢ່າງອາດຖືກປິດການນຳໃຊ້ໃນໂໝດເຫຼົ່ານີ້, ດັ່ງນັ້ນບາງແອັບພລິເຄຊັນຈຶ່ງອາດບໍ່ເຮັດວຽກ. ເພື່ອໃຫ້ອຸປະກອນກັບຄືນເປັນໂໝດໂປຣດັກຊັນ, ທ່ານຈະຕ້ອງປ່ຽນກັບໄປໃຊ້ໂໝດ 4KB ຈາກນັ້ນລັອກ bootloader, ເຊິ່ງຈະຣີເຊັດອຸປະກອນເປັນຄ່າຈາກໂຮງງານ. ຫຼັງຈາກທີ່ອຸປະກອນເປີດເຂົ້າເປັນ Android ໄດ້ສຳເລັດ, ໃຫ້ປິດການນຳໃຊ້ການປົດລັອກ OEM ໃນຕົວເລືອກນັກພັດທະນາ. ອຸປະກອນຈະຖືກລ້າງຂໍ້ມູນ ແລະ ລະບົບໄຟລ໌ຈະປ່ຽນເປັນ ext4 ຫຼັງຈາກການຢືນຢັນ. ຫຼັງຈາກການດຳເນີນການນີ້ສຳເລັດ, ກະລຸນາກັບຄືນມາເປີດການນຳໃຊ້ໂໝດ 16KB ອີກເທື່ອໜຶ່ງ."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"ລຶບຂໍ້ມູນທັງໝົດ"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ຟໍແມັດໃໝ່ ແລະ ລ້າງພາທິຊັນຂໍ້ມູນເປັນ ext4 ບໍ່ສຳເລັດ."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"ຕ້ອງປົດລັອກ Bootloader"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"ອຸປະກອນນີ້ຕ້ອງມີການປົດລັອກ bootloader ກ່ອນທີ່ຈະໃຊ້ຕົວເລືອກນັກພັດທະນາແບບ 16KB. ບໍ່ຮັບປະກັນຄວາມສົມບູນຂອງຊອບແວໃນໂໝດນີ້ ແລະ ຂໍ້ມູນໃດກໍຕາມທີ່ຈັດເກັບໃນໂທລະສັບໃນລະຫວ່າງທີ່ bootloader ປົດລັອກຢູ່ອາດມີຄວາມສ່ຽງ. ຂໍ້ມູນຜູ້ໃຊ້ ແລະ ການຕັ້ງຄ່າທັງໝົດຈະຖືກລ້າງເມື່ອເປີດນຳໃຊ້ໂໝດ 16KB. ເມື່ອປົດລັອກ bootloader ແລ້ວ, ການເປີດນຳໃຊ້ຕົວເລືອກ 16KB ຈະຕ້ອງມີການປິດເປີດໃໝ່ສອງເທື່ອ. ເມື່ອທ່ານຢູ່ໃນໂໝດນີ້ແລ້ວ, ທ່ານສາມາດປ່ຽນໄປມາລະຫວ່າງໂໝດ 4KB ແລະ 16KB ໄດ້ໂດຍການປິດເປີດໃໝ່ເທື່ອດຽວ. ຄຸນສົມບັດບາງຢ່າງອາດຖືກປິດການນຳໃຊ້ໃນໂໝດເຫຼົ່ານີ້, ດັ່ງນັ້ນບາງແອັບພລິເຄຊັນຈຶ່ງອາດບໍ່ເຮັດວຽກ. ເພື່ອໃຫ້ອຸປະກອນກັບຄືນເປັນໂໝດໂປຣດັກຊັນ, ທ່ານຈະຕ້ອງປ່ຽນກັບໄປໃຊ້ໂໝດ 4KB ຈາກນັ້ນລັອກ OEM/bootloader (ເຊິ່ງຈະຣີເຊັດອຸປະກອນເປັນຄ່າຈາກໂຮງງານ). ກະລຸນາປົດລັອກ bootloader ແລ້ວລອງໃໝ່. ທ່ານສາມາດເບິ່ງຄຳແນະນຳສຳລັບວິທີການນີ້ໄດ້ຢູ່ <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"ກຳລັງໃຊ້ໂໝດບໍ່ເນັ້ນການໃຊ້ໜ້າ ໂດຍໃຊ້ຂະໜາດ 4KB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"ທ່ານຢູ່ໃນໂໝດ 4KB ຂອງໂໝດບໍ່ເນັ້ນການໃຊ້ໜ້າ. ບໍ່ຮັບປະກັນຄວາມສົມບູນຂອງຊອບແວໃນໂໝດນີ້ ແລະ ຂໍ້ມູນໃດກໍຕາມທີ່ຈັດເກັບໃນໂທລະສັບໃນລະຫວ່າງທີ່ bootloader ປົດລັອກຢູ່ອາດມີຄວາມສ່ຽງ. ຄຸນສົມບັດບາງຢ່າງອາດຖືກປິດການນຳໃຊ້ໃນໂໝດເຫຼົ່ານີ້, ດັ່ງນັ້ນບາງແອັບພລິເຄຊັນຈຶ່ງອາດບໍ່ເຮັດວຽກ. ເພື່ອກັບຄືນເປັນໂໝດໂປຣດັກຊັນອີກເທື່ອໜຶ່ງ, ທ່ານຕ້ອງລັອກ bootloader ຂອງອຸປະກອນ. ແຕະເພື່ອອ່ານເພີ່ມເຕີມ."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"ທ່ານຢູ່ໃນໂໝດ 4KB ຂອງໂໝດບໍ່ເນັ້ນການໃຊ້ໜ້າ. ບໍ່ຮັບປະກັນຄວາມສົມບູນຂອງຊອບແວໃນໂໝດນີ້ ແລະ ຂໍ້ມູນໃດກໍຕາມທີ່ຈັດເກັບໃນໂທລະສັບໃນລະຫວ່າງທີ່ bootloader ປົດລັອກຢູ່ອາດມີຄວາມສ່ຽງ. ຄຸນສົມບັດບາງຢ່າງອາດຖືກປິດການນຳໃຊ້ໃນໂໝດເຫຼົ່ານີ້, ດັ່ງນັ້ນບາງແອັບພລິເຄຊັນຈຶ່ງອາດບໍ່ເຮັດວຽກ. ເພື່ອກັບຄືນເປັນໂໝດໂປຣດັກຊັນອີກເທື່ອໜຶ່ງ, ທ່ານຕ້ອງລັອກ bootloader ຂອງອຸປະກອນ. ການດຳເນີນການນີ້ຈະຣີເຊັດອຸປະກອນເປັນຄ່າຈາກໂຮງງານອີກເທື່ອໜຶ່ງ ແລະ ກູ້ຄືນເປັນການຕັ້ງຄ່າໂປຣດັກຊັນ. ຫຼັງຈາກທີ່ອຸປະກອນເປີດເຂົ້າເປັນ Android ໄດ້ສຳເລັດ, ໃຫ້ປິດການນຳໃຊ້ການປົດລັອກ OEM ໃນຕົວເລືອກນັກພັດທະນາ. ຫາກອຸປະກອນບໍ່ສາມາດເປີດເຂົ້າເປັນ Android ຫຼື ບໍ່ສະຖຽນ, ໃຫ້ແຟລຊອຸປະກອນອີກເທື່ອໜຶ່ງໂດຍໃຊ້ຮູບພາບໂຮງງານຫຼ້າສຸດຈາກ <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ຫຼື ໃຊ້ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ແລະ ເລືອກ \'ລ້າງຂໍ້ມູນອຸປະກອນ\', \'ລັອກ Bootloader\' ແລະ \'ບັງຄັບໃຫ້ແຟລຊທຸກພາທິຊັນ\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"ກຳລັງໃຊ້ໂໝດບໍ່ເນັ້ນການໃຊ້ໜ້າ ໂດຍໃຊ້ຂະໜາດ 16KB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"ທ່ານຢູ່ໃນໂໝດ 16KB ຂອງໂໝດບໍ່ຂຶ້ນກັບໜ້າ. ບໍ່ຮັບປະກັນຄວາມສົມບູນຂອງຊອບແວໃນໂໝດນີ້ ແລະ ຂໍ້ມູນໃດກໍຕາມທີ່ຈັດເກັບໃນໂທລະສັບໃນລະຫວ່າງທີ່ Bootloader ປົດລັອກຢູ່ອາດມີຄວາມສ່ຽງ. ຄຸນສົມບັດບາງຢ່າງອາດຖືກປິດການນຳໃຊ້ໃນໂໝດເຫຼົ່ານີ້, ດັ່ງນັ້ນບາງແອັບພລິເຄຊັນຈຶ່ງອາດບໍ່ເຮັດວຽກ. ເພື່ອກັບຄືນເປັນໂໝດໂປຣດັກຊັນອີກເທື່ອໜຶ່ງ, ທ່ານຕ້ອງປ່ຽນກັບໄປໃຊ້ໂໝດ 4KB ຈາກນັ້ນລັອກ Bootloader ຂອງອຸປະກອນ. ແຕະເພື່ອອ່ານເພີ່ມເຕີມ."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"ທ່ານຢູ່ໃນໂໝດ 16KB ຂອງໂໝດບໍ່ຂຶ້ນກັບໜ້າ. ບໍ່ຮັບປະກັນຄວາມສົມບູນຂອງຊອບແວໃນໂໝດນີ້ ແລະ ຂໍ້ມູນໃດກໍຕາມທີ່ຈັດເກັບໃນໂທລະສັບໃນລະຫວ່າງທີ່ Bootloader ປົດລັອກຢູ່ອາດມີຄວາມສ່ຽງ. ຄຸນສົມບັດບາງຢ່າງອາດຖືກປິດການນຳໃຊ້ໃນໂໝດເຫຼົ່ານີ້, ດັ່ງນັ້ນບາງແອັບພລິເຄຊັນຈຶ່ງອາດບໍ່ເຮັດວຽກ. ເພື່ອກັບຄືນເປັນໂໝດໂປຣດັກຊັນອີກເທື່ອໜຶ່ງ, ທ່ານຕ້ອງປ່ຽນກັບໄປໃຊ້ໂໝດ 4KB ຈາກນັ້ນລັອກ Bootloader ຂອງອຸປະກອນ. ການດຳເນີນການນີ້ຈະຣີເຊັດອຸປະກອນເປັນຄ່າຈາກໂຮງງານອີກເທື່ອໜຶ່ງ ແລະ ກູ້ຄືນເປັນການຕັ້ງຄ່າໂປຣດັກຊັນ. ຫຼັງຈາກທີ່ອຸປະກອນເປີດເຂົ້າເປັນ Android ໄດ້ສຳເລັດ, ໃຫ້ປິດການນຳໃຊ້ການປົດລັອກ OEM ໃນຕົວເລືອກນັກພັດທະນາ. ຫາກອຸປະກອນບໍ່ສາມາດເປີດເຂົ້າເປັນ Android ຫຼື ບໍ່ສະຖຽນ, ໃຫ້ແຟລຊອຸປະກອນອີກເທື່ອໜຶ່ງໂດຍໃຊ້ຮູບພາບໂຮງງານຫຼ້າສຸດຈາກ <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ຫຼື ໃຊ້ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ແລະ ເລືອກ \'ລ້າງຂໍ້ມູນອຸປະກອນ\', \'ລັອກ Bootloader\' ແລະ \'ບັງຄັບໃຫ້ແຟລຊທຸກພາທິຊັນ\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"ໂໝດບໍ່ເນັ້ນການໃຊ້ໜ້າ ໂດຍໃຊ້ຂະໜາດ 16KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"ອ່ານເພີ່ມເຕີມ"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"ເຄື່ອງຈັດການລາຍງານຂໍ້ຜິດພາດ"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"ເລືອກວ່າທ່ານຈະເຫັນຫຍັງຢູ່ໜ້າຈໍຂອງທ່ານເມື່ອແທັບເລັດຂອງທ່ານຕັ້ງຢູ່ດັອກ. ອຸປະກອນຂອງທ່ານອາດໃຊ້ພະລັງງານຫຼາຍຂຶ້ນເມື່ອໃຊ້ສະກຣີນເຊບເວີ."</string>
<string name="customize_button_title" msgid="1110284655990203359">"ປັບແຕ່ງ"</string>
<string name="customize_button_description" msgid="7440248477266126231">"ປັບແຕ່ງ <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ຕ້ອງປິດເປີດໃໝ່ເພື່ອເປີດການນຳໃຊ້ການຊ່ວຍເຫຼືອຮູບແບບອິດສະລະ."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ຕ້ອງປິດເປີດໃໝ່ເພື່ອບັງຄັບໂໝດເດັສທັອບຢູ່ໜ້າຈໍທີສອງ."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"ຕ້ອງປິດເປີດໃໝ່ເພື່ອເປີດການນຳໃຊ້ການຮອງຮັບໜ້າຈໍຮູບແບບອິດສະຫຼະແບບເກົ່າ."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"ຕ້ອງປິດເປີດໃໝ່ເພື່ອປ່ຽນການຮອງຮັບໜ້າຈໍຮູບແບບອິດສະຫຼະ."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"ຕ້ອງປິດເປີດໃໝ່ເພື່ອບັງຄັບໃຫ້ເປີດການນຳໃຊ້ໜ້າຈໍຮູບແບບອິດສະຫຼະຢູ່ຈໍສະແດງຜົນສຳຮອງ."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ປິດເປີດໃໝ່ໃນຕອນນີ້"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ປິດເປີດໃໝ່ໃນພາຍຫຼັງ"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ສຽງຮອບທິດທາງ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 65e53ee..a33ebfd 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Tai reikia padaryti todėl, kad įjungta tapatybės patikra"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Parinktys"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Pritaikomumas"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fizinė klaviatūra"</string>
- <string name="show_ime" msgid="4334255501724746849">"Ekrano klaviatūros naudojimas"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Palikti ekrane, kol fizinė klaviatūra aktyvi"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Peradresavimo klavišai"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Klaviatūra nepaiso greitai kartojamų to paties klavišo paspaudimų <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> milisek."</string>
<string name="slow_keys" msgid="2891452895499690837">"Lėtieji klavišai"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vis tiek tęsti"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Atšaukti"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Didinimo nustatymai"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Perkelkite didintuvą vienu pirštu"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Judėkite ekrane vilkdami pirštu."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Perkelkite didinimo sritį vilkdami vienu pirštu."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Perkelkite didinimo sritį vilkdami dviem pirštais."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nepasiekiama, kol didinama tik dalis ekrano"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Palieskite mygtuką, kad keistumėte mastelį"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Sparčiai artinkite ekrane, kad turinys būtų didesnis"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Kad priartintumėte, atlikite toliau nurodytus veiksmus.</b><br/> {0,number,integer}. Paleiskite didinimo funkciją sparčiuoju klavišu.<br/> {1,number,integer}. Palieskite ekraną.<br/> {2,number,integer}. Pereikite nuo vieno ekrano elemento prie kito vilkdami dviem pirštais.<br/> {3,number,integer}. Koreguokite mastelį suėmę dviem pirštais.<br/> {4,number,integer}. Sustabdykite didinimo funkciją sparčiuoju klavišu.<br/><br/> <b>Kad laikinai priartintumėte, atlikite toliau nurodytus veiksmus.</b><br/> {0,number,integer}. Įsitikinkite, kad didinimo tipas nustatytas į viso ekrano.<br/> {1,number,integer}. Paleiskite didinimo funkciją sparčiuoju klavišu.<br/> {2,number,integer}. Palieskite ir palaikykite bet kurią ekrano vietą.<br/> {3,number,integer}. Pereikite nuo vieno ekrano elemento prie kito vilkdami pirštu.<br/> {4,number,integer}. Sustabdykite didinimo funkciją pakeldami pirštą."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Kad priartintumėte, atlikite toliau nurodytus veiksmus.:</b><br/> {0,number,integer}. Paleiskite didinimo funkciją sparčiuoju klavišu.<br/> {1,number,integer}. Palieskite ekraną.<br/> {2,number,integer}. Judėkite ekrane vilkdami dviem pirštais.<br/> {3,number,integer}. Koreguokite mastelį suėmę dviem pirštais.<br/> {4,number,integer}. Sustabdykite didinimo funkciją sparčiuoju klavišu.<br/><br/> Taip pat galite laikinai priartinti ir atlikti kitus veiksmus."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Kad priartintumėte, atlikite toliau nurodytus veiksmus.:</b><br/> {0,number,integer}. Paleiskite didinimo funkciją sparčiuoju klavišu.<br/> {1,number,integer}. Palieskite ekraną.<br/> {2,number,integer}. Judėkite ekrane vilkdami vienu arba dviem pirštais.<br/> {3,number,integer}. Koreguokite mastelį suėmę dviem pirštais.<br/> {4,number,integer}. Sustabdykite didinimo funkciją sparčiuoju klavišu.<br/><br/> Taip pat galite laikinai priartinti ir atlikti kitus veiksmus."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kai didinimas įjungtas, galite artinti ekraną.\n\n"<b>"Jei norite keisti mastelį,"</b>", įjunkite didinimą, tada palieskite bet kurioje ekrano vietoje.\n"<ul><li>"Slinkite vilkdami dviem ar daugiau pirštų"</li>\n<li>"Koreguokite mastelį suimdami dviem ar daugiau pirštų"</li></ul>\n\n<b>"Jei norite laikinai pakeisti mastelį"</b>", įjunkite didinimą, tada palieskite ir palaikykite bet kurioje ekrano vietoje.\n"<ul><li>"Naršykite ekraną vilkdami pirštu"</li>\n<li>"Pakelkite pirštą, kad tolintumėte"</li></ul>\n\n"Negalite artinti naudodami klaviatūrą ar naršymo juostą."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g> psl. iš <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Pritaikomumo mygtuko spartusis klavišas"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Režimo kūrimas"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Tinkinta"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Pertraukčių apribojimas"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Netrukdymo režimo įjungimas"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Signalai ir medijos garsai gali trikdyti"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Nustatykite tvarkaraštį"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Tvarkaraštis"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> val. <xliff:g id="MINUTES">%2$d</xliff:g> min."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Įjungti automatiškai"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Tvarkaraštis"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Nutildykite telefoną tam tikru metu"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Nustatykite netrukdymo režimo taisykles"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"atidaromas pranešimas"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Leisti nustatyti pranešimus snausti"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Pranešimo taškas programos piktogramoje"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Burbulai"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbulai"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Rodyti šio pokalbio burbulą"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Viskas"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Leisti programoms nepaisyti"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Programos, kurios gali trikdyti"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pasirinkti daugiau programų"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Dėklas"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akumuliatorius"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Nustatymų skydelis"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Priverstinai įjungti darbalaukio režimą"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Priverstinai įjungti eksperimentinį darbalaukio režimą antriniuose ekranuose"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Įgalinti laisvos formos langus"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Įgalinti laisvos formos langų palaikymą."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Įgal. pateikimą laisvos formos lang. papild. ekr."</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Įgalinti laisvos formos langus tik papildomame ekrane."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Įgalinti nekeičiamo dydžio progr. naud. kelių langų funkciją"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Leidžiama naudoti nekeičiamo dydžio programas su kelių langų funkcija"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Nepaisyti priverst. tamsaus rež. įgalin."</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Šio įrenginio duomenų skaidinį reikia konvertuoti į „ext4“ prieš naudojant 16 KB kūrėjo parinktį. Šiuo režimu negalima garantuoti programinės įrangos vientisumo ir visiems telefone saugomiems duomenims, kai panaikintas paleidyklės operatoriaus pasirinkimo ribojimas, gali kilti pavojus. Suaktyvinus 16 KB parinktį, po to reikės dar vieno paleidimo iš naujo. Dirbdami šiuo režimu galėsite perjungti 4 KB ir 16 KB režimus paleidę iš naujo vieną kartą. Kai kurios funkcijos gali būti išjungtos šiais režimais, todėl kai kurios programos gali neveikti. Jei norite vėl įjungti įrenginio generavimo režimą, turite vėl perjungti į 4 KB režimą ir užrakinti paleidyklę, tada bus atkurti įrenginio gamykliniai nustatymai. Kai įrenginys bus sėkmingai paleistas sistemoje „Android“, išjunkite OĮG operatoriaus pasirinkimo ribojimo panaikinimą „Kūrėjo parinkčių“ skiltyje. Įrenginio duomenys bus panaikinti ir patvirtinus failų sistema bus pakeista į „ext4“. Kai tai bus baigta, grįžkite ir vėl įgalinkite 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Ištrinti visus duomenis"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Nepavyko performatuoti į „ext4“ ir panaikinti duomenų skaidinio."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Reikia atrakinti paleidyklę"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Kad būtų galima naudoti 16 KB kūrėjo parinktį, turi būti panaikintas šio įrenginio paleidyklės operatoriaus pasirinkimo ribojimas. Šiuo režimu negalima garantuoti programinės įrangos vientisumo ir visiems telefone saugomiems duomenims, kai panaikintas paleidyklės operatoriaus pasirinkimo ribojimas, gali kilti pavojus. Suaktyvinus 16 KB režimą, visi naudotojo duomenys ir nustatymai bus panaikinti. Panaikinus paleidyklės operatoriaus pasirinkimo ribojimą, norint suaktyvinti 16 KB parinktį, reikės du kartus paleisti iš naujo. Dirbdami šiuo režimu galėsite perjungti 4 KB ir 16 KB režimus paleidę iš naujo vieną kartą. Kai kurios funkcijos gali būti išjungtos šiais režimais, todėl kai kurios programos gali neveikti. Jei norite vėl įjungti įrenginio generavimo režimą, turite vėl perjungti į 4 KB režimą ir taikyti įrenginio OĮG ir (arba) paleidyklės užrakinimą (tada bus atkurti gamykliniai nustatymai). Panaikinkite paleidyklės operatoriaus pasirinkimo ribojimą ir bandykite dar kartą. Instrukcijas, kaip tai atlikti, rasite adresu <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4 KB nepriklausomo puslapio dydžio režimo naudojimas"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Dirbate 4 KB nepriklausomo puslapio dydžio režimu. Šiuo režimu negalima garantuoti programinės įrangos vientisumo ir visiems telefone saugomiems duomenims, kai panaikintas paleidyklės operatoriaus pasirinkimo ribojimas, gali kilti pavojus. Kai kurios funkcijos gali būti išjungtos šiais režimais, todėl kai kurios programos gali neveikti. Jei norite vėl įjungti generavimo režimą, turite užrakinti įrenginio paleidyklę. Palieskite, jei norite skaityti daugiau."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Dirbate 4 KB nepriklausomo puslapio dydžio režimu. Šiuo režimu negalima garantuoti programinės įrangos vientisumo ir visiems telefone saugomiems duomenims, kai panaikintas paleidyklės operatoriaus pasirinkimo ribojimas, gali kilti pavojus. Kai kurios funkcijos gali būti išjungtos šiais režimais, todėl kai kurios programos gali neveikti. Jei norite vėl įjungti generavimo režimą, turite užrakinti įrenginio paleidyklę. Tada vėl bus atkurti įrenginio gamykliniai nustatymai. Kai įrenginys bus sėkmingai paleistas sistemoje „Android“, išjunkite OĮG operatoriaus pasirinkimo ribojimo panaikinimą „Kūrėjo parinkčių“ skiltyje. Jei nepavyksta paleisti įrenginio sistemoje „Android“ arba jis nestabilus, iš naujo įdiekite įrenginį „Android“ ROM vidinėje atmintyje su naujausiais gamykliniais disko atvaizdžiais iš <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> arba naudokite <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ir pasirinkite „Naikinti įrenginio duomenis“, „Užrakinti paleidyklę“ ir „Priverstinai įdiegti visus skaidinius „Android“ ROM vidinėje atmintyje“."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16 KB nepriklausomo puslapio dydžio režimo naudojimas"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Dirbate 16 KB puslapio agnostikos režimu. Šiuo režimu negalima garantuoti programinės įrangos vientisumo ir visiems telefone saugomiems duomenims, kai paleidyklė atrakinta, gali kilti pavojus. Kai kurios funkcijos gali būti išjungtos šiais režimais, todėl kai kurios programos gali neveikti. Jei norite vėl įjungti generavimo režimą, turite vėl perjungti į 4 KB režimą ir užrakinti įrenginio paleidyklę. Palieskite, jei norite skaityti daugiau."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Dirbate 16 KB puslapio agnostikos režimu. Šiuo režimu negalima garantuoti programinės įrangos vientisumo ir visiems telefone saugomiems duomenims, kai paleidyklė atrakinta, gali kilti pavojus. Kai kurios funkcijos gali būti išjungtos šiais režimais, todėl kai kurios programos gali neveikti. Jei norite vėl įjungti generavimo režimą, turite vėl perjungti į 4 KB režimą ir užrakinti įrenginio paleidyklę. Tada vėl bus atkurti įrenginio gamykliniai nustatymai. Kai įrenginys bus sėkmingai paleistas sistemoje „Android“, išjunkite OĮG operatoriaus pasirinkimo ribojimo panaikinimą skiltyje „Kūrėjo parinktys“. Jei nepavyksta paleisti įrenginio sistemoje „Android“ arba jis nestabilus, iš naujo įdiekite įrenginį „Android“ ROM vidinėje atmintyje su naujausiais gamykliniais disko atvaizdžiais iš <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> arba naudokite <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ir pasirinkite „Naikinti įrenginio duomenis“, „Užrakinti paleidyklę“ ir „Priverstinai įdiegti visus skaidinius „Android“ ROM vidinėje atmintyje“."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 KB nepriklausomo puslapio dydžio režimas"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Skaityti daugiau"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Pranešimų apie riktus doroklė"</string>
@@ -5190,8 +5189,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Pasirinkite, kas bus rodoma ekrane, kai planšetinis kompiuteris bus prijungtas prie doko. Naudojant ekrano užsklandą gali būti eikvojama daugiau įrenginio energijos."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Tinkinti"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Tinkinti skiltį „<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>“"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Norint įgalinti laisvos formos palaikymą, būtina paleisti iš naujo."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Norint priverstinai įjungti darbalaukio režimą antriniuose ekranuose, būtina paleisti iš naujo."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Norint įgalinti pasenusių laisvos formos langų palaikymą reikia paleisti įrenginį iš naujo."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Norint pakeisti pateikimo laisvos formos languose palaikymą reikia paleisti įrenginį iš naujo."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Norint įgalinti priverstinį pateikimą laisvos formos languose papildomuose ekranuose reikia paleisti įrenginį iš naujo."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Paleisti iš naujo dabar"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Paleisti iš naujo vėliau"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Erdvinis garsas"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 73f98fe..f1e1ffb 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Šāda pārbaude ir vajadzīga, jo ir ieslēgta funkcija Identity Check."</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opcijas"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Pieejamība"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziskā tastatūra"</string>
- <string name="show_ime" msgid="4334255501724746849">"Izmantot ekrāna tastatūru"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Paturēt ekrānā, kamēr ir aktīva fiziskā tastatūra"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Atlēcienu taustiņi"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Tastatūra ignorē ātru taustiņa nospiešanu vairākas reizes, ja tas tiek atkārtoti nospiests <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms laikā."</string>
<string name="slow_keys" msgid="2891452895499690837">"Lēnie taustiņi"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Tomēr turpināt"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Atcelt"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Palielināšanas iestatījumi"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Pārvietot lupu ar vienu pirkstu"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Velciet ar pirkstu, lai pārvietotos ekrānā."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Palielinājuma apgabala pārvietošanai velciet vienu pirkstu."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Palielinājuma apgabala pārvietošanai velciet divus pirkstus."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nav pieejama, kad tiek palielināta tikai daļa ekrāna"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Pieskarieties pogai, lai palielinātu"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Ātri tuviniet ekrānu, lai palielinātu saturu"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Tuvināšana</b><br/> {0,number,integer}. Izmantojiet īsinājumtaustiņu, lai sāktu palielināšanu.<br/> {1,number,integer}. Pieskarieties ekrānam.<br/> {2,number,integer}. Lai pārvietotos ekrānā, velciet ar diviem pirkstiem.<br/> {3,number,integer}. Lai regulētu tālummaiņu, savelciet ar diviem pirkstiem.<br/> {4,number,integer}. Izmantojiet īsinājumtaustiņu, lai pārtrauktu palielināšanu.<br/><br/> <b>Īslaicīga tuvināšana</b><br/> {0,number,integer}. Pārliecinieties, vai iestatītais palielinājuma veids ir “Pilnekrāna režīms”.<br/> {1,number,integer}. Izmantojiet īsinājumtaustiņu, lai sāktu palielināšanu.<br/> {2,number,integer}. Pieskarieties un turiet jebkurā ekrāna vietā.<br/> {3,number,integer}. Lai pārvietotos ekrānā, velciet ar pirkstu.<br/> {4,number,integer}. Paceliet pirkstu, lai pārtrauktu palielināšanu."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Tuvināšana</b><br/> {0,number,integer}. Izmantojiet saīsni, lai sāktu palielināšanu.<br/> {1,number,integer}. Pieskarieties ekrānam.<br/> {2,number,integer}. Lai pārvietotos ekrānā, velciet ar diviem pirkstiem.<br/> {3,number,integer}. Lai regulētu tālummaiņu, savelciet ar diviem pirkstiem.<br/> {4,number,integer}. Lai atceltu palielinājumu, izmantojiet saīsni.<br/><br/> Varat arī tuvināt īslaicīgi un veikt vēl citas darbības."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Tuvināšana</b><br/> {0,number,integer}. Izmantojiet saīsni, lai sāktu palielināšanu.<br/> {1,number,integer}. Pieskarieties ekrānam.<br/> {2,number,integer}. Lai pārvietotos ekrānā, velciet ar vienu vai diviem pirkstiem.<br/> {3,number,integer}. Lai regulētu tālummaiņu, savelciet ar diviem pirkstiem.<br/> {4,number,integer}. Lai atceltu palielinājumu, izmantojiet saīsni.<br/><br/> Varat arī tuvināt īslaicīgi un veikt vēl citas darbības."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kad ir ieslēgts palielinājums, ekrānā varat izmantot tuvināšanu.\n\n"<b>"Lai izmantotu tālummaiņu"</b>", aktivizējiet palielinājumu un pēc tam pieskarieties jebkur ekrānā.\n"<ul><li>"Velciet ar vismaz 2 pirkstiem, lai ritinātu."</li>\n<li>"Savelciet kopā vismaz 2 pirkstus, lai pielāgotu tālummaiņu."</li></ul>\n\n<b>"Lai veiktu īslaicīgu tālummaiņu"</b>", aktivizējiet palielinājumu un pēc tam pieskarieties jebkurai vietai ekrānā un turiet to.\n"<ul><li>"Velciet ar pirkstu, lai pārvietotos pa ekrānu."</li>\n<li>"Paceliet pirkstu, lai veiktu tālināšanu."</li></ul>\n\n"Tastatūrā vai navigācijas joslā nevarat veikt tuvināšanu."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. lapa no <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Saīsne: pieejamības poga"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Režīma izveide"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Pielāgots"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Traucējumu ierobežošana"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Režīma “Netraucēt” ieslēgšana"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Modinātāji un multivides skaņas, kam atļauts pārtraukt"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Iestatiet grafiku"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Grafiks"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Ieslēgt automātiski"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Grafiks"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Skaņas izslēgšana noteiktā laikā"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Iestatīt režīma “Netraucēt” kārtulas"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"atvērt paziņojumu"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Atļaut paziņojumu atlikšanu"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Paziņojuma punkts lietotnes ikonā"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Burbuļi"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbuļi"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Sarunas rādīšana burbulī"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Visas"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Atļaut lietotnēm ignorēt režīmu “Netraucēt”"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Lietotnes, kas var pārtraukt"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Citu lietotņu atlase"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Futrālis"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akumulators"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Iestatījumu panelis"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Veikt piespiedu darbvirsmas režīma atvēršanu"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Veikt piespiedu eksperimentālā darbvirsmas režīma atvēršanu sekundārajos displejos"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Iespējot brīvās formas logus"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Iespējot atbalstu brīvās formas logiem."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Iespējot brīvās formas logus otrajā displejā"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Iespējot brīvās formas logus tikai sekundārajā displejā."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Vairāku logu režīmā iespējot nemainīga lieluma lietotnes"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Šis iestatījums ļauj vairāku logu režīmā rādīt lietotnes, kuru lielums nav maināms"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Tumšā režīma piespiedu ieslēgšanas ignorēšana"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Ierīces datu nodalījuma failu sistēma jākonvertē uz ext4, lai varētu izmantot izstrādātāju opciju “16 KB”. Šajā režīmā nevar garantēt programmatūras integritāti, un tālrunī glabātie dati var būt apdraudēti, kamēr operētājsistēmu ielādes rīks ir atbloķēts. Lai varētu aktivizēt opciju “16 KB”, ierīce būs vēl vienu reizi atkārtoti jāpalaiž. Kad būs ieslēgts šis režīms, varēsiet pārslēgt 4 KB vai 16 KB režīmu, vienreiz atkārtoti palaižot ierīci. Šajos režīmos dažas funkcijas tiks atspējotas, tādēļ dažas lietojumprogrammas var nedarboties. Lai ierīcē atjaunotu produkcijas režīmu, jums būs jāpārslēdz 4 KB režīms un jābloķē operētājsistēmu ielādes rīks. Tādējādi ierīcē tiks atjaunoti rūpnīcas dati. Kad ierīcē būs sekmīgi palaista operētājsistēma Android, izstrādātāju opcijās atspējojiet OAR atbloķēšanu. Apstiprinot šo darbību, ierīcē tiks notīrīti dati un failu sistēma tiks mainīta uz ext4. Kad tas būs paveikts, lūdzu, atgriezieties, lai iespējotu 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Dzēst visus datus"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Neizdevās notīrīt datu nodalījumu un to pārformatēt uz failu sistēmu ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Jāatbloķē operētājsistēmu ielādes rīks"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Lai varētu izmantot izstrādātāju opciju “16 KB”, ierīcē ir jāatbloķē operētājsistēmu ielādes rīks. Šajā režīmā nevar garantēt programmatūras integritāti, un tālrunī glabātie dati var būt apdraudēti, kamēr operētājsistēmu ielādes rīks ir atbloķēts. Aktivizējot 16 KB režīmu, tiks notīrīti visi lietotāja dati un iestatījumi. Kad operētājsistēmu ielādes rīks būs atbloķēts, ierīce būs atkārtoti jāpalaiž divas reizes, lai aktivizētu opciju “16 KB”. Kad būs ieslēgts šis režīms, varēsiet pārslēgt 4 KB vai 16 KB režīmu, vienreiz atkārtoti palaižot ierīci. Šajos režīmos dažas funkcijas tiks atspējotas, tādēļ dažas lietojumprogrammas var nedarboties. Lai ierīcē atjaunotu produkcijas režīmu, jums būs jāpārslēdz 4 KB režīms un jābloķē OAR/operētājsistēmu ielādes rīks. Tādējādi ierīcē tiks atjaunoti rūpnīcas dati. Lūdzu, atbloķējiet operētājsistēmu ielādes rīku un mēģiniet vēlreiz. Norādījumi ir sniegti šeit: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Tiek izmantots 4 KB režīms, kas nav atkarīgs no lappušatmiņas lieluma"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Pašlaik izmantojat 4 KB režīmu, kas nav atkarīgs no lappušatmiņas lieluma. Šajā režīmā nevar garantēt programmatūras integritāti, un tālrunī glabātie dati var būt apdraudēti, kamēr operētājsistēmu ielādes rīks ir atbloķēts. Šajos režīmos dažas funkcijas tiks atspējotas, tādēļ dažas lietojumprogrammas var nedarboties. Lai ierīcē atjaunotu produkcijas režīmu, jums ir jābloķē operētājsistēmu ielādes rīks. Pieskarieties, lai lasītu vairāk."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Pašlaik izmantojat 4 KB režīmu, kas nav atkarīgs no lappušatmiņas lieluma. Šajā režīmā nevar garantēt programmatūras integritāti, un tālrunī glabātie dati var būt apdraudēti, kamēr operētājsistēmu ielādes rīks ir atbloķēts. Šajos režīmos dažas funkcijas tiks atspējotas, tādēļ dažas lietojumprogrammas var nedarboties. Lai ierīcē atjaunotu produkcijas režīmu, jums ir jābloķē operētājsistēmu ielādes rīks. Tādējādi ierīcē atkal tiks atjaunoti rūpnīcas dati un produkcijas iestatījumi. Kad ierīcē būs sekmīgi palaista operētājsistēma Android, izstrādātāju opcijās atspējojiet OAR atbloķēšanu. Ja ierīcē neizdodas palaist operētājsistēmu Android vai tā nav stabila, ierīcē instalējiet jaunākos rūpnīcas attēlus no vietnes <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> vai apmeklējiet vietni <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> un atlasiet “Wipe Device” (Notīrīt ierīci), “Lock Bootloader” (Bloķēt operētājsistēmu ielādes rīku) un “Force Flash all partitions” (Veikt piespiedu instalēšanu visos nodalījumos)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Tiek izmantots 16 KB režīms, kas nav atkarīgs no lappušatmiņas lieluma"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Pašlaik izmantojat 16 KB režīmu, kas nav atkarīgs no lappušatmiņas lieluma. Šajā režīmā nevar garantēt programmatūras integritāti, un tālrunī glabātie dati var būt apdraudēti, kamēr operētājsistēmu ielādes rīks ir atbloķēts. Šajos režīmos dažas funkcijas tiks atspējotas, tāpēc dažas lietojumprogrammas var nedarboties. Lai atjaunotu produkcijas režīmu, jums būs atkal jāpāriet uz 4 KB režīmu un pēc tam jābloķē ierīces operētājsistēmu ielādes rīks. Pieskarieties, lai lasītu vairāk."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Pašlaik izmantojat 16 KB režīmu, kas nav atkarīgs no lappušatmiņas lieluma. Šajā režīmā nevar garantēt programmatūras integritāti, un tālrunī glabātie dati var būt apdraudēti, kamēr operētājsistēmu ielādes rīks ir atbloķēts. Šajos režīmos dažas funkcijas tiks atspējotas, tāpēc dažas lietojumprogrammas var nedarboties. Lai atjaunotu produkcijas režīmu, jums būs atkal jāpāriet uz 4 KB režīmu un pēc tam jābloķē ierīces operētājsistēmu ielādes rīks. Tādējādi ierīcē tiks atkal atiestatīti rūpnīcas dati un atjaunoti produkcijas iestatījumi. Kad ierīcē būs sekmīgi palaista operētājsistēma Android, izstrādātāju opcijās atspējojiet OAR atbloķēšanu. Ja ierīcē neizdodas palaist operētājsistēmu Android vai tā nav stabila, atkārtoti instalējiet lasāmatmiņu ierīces iekšējā atmiņā, izmantojot jaunākos rūpnīcas attēlus no vietnes <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> vai apmeklējiet vietni <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> un atlasiet “Wipe Device” (Notīrīt ierīci), “Lock Bootloader” (Bloķēt operētājsistēmu ielādes rīku) un “Force Flash all partitions” (Piespiedu kārtā instalēt lasāmatmiņu visos ierīces iekšējās atmiņas nodalījumos)."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 KB režīms, kas nav atkarīgs no lappušatmiņas lieluma"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Uzzināt vairāk"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Kļūdu pārskatu apstrādātājs"</string>
@@ -5082,7 +5081,7 @@
<string name="graphics_driver_main_switch_title" msgid="6125172901855813790">"Izmantot grafikas draivera preferences"</string>
<string name="night_light_main_switch_title" msgid="3428298022467805219">"Izmantot funkciju Nakts režīms"</string>
<string name="nfc_main_switch_title" msgid="6295839988954817432">"Izmantot tehnoloģiju NFC"</string>
- <string name="adaptive_brightness_main_switch_title" msgid="2681666805191642737">"Izmantot adaptīvu spilgtumu"</string>
+ <string name="adaptive_brightness_main_switch_title" msgid="2681666805191642737">"Izmantot adaptīvo spilgtumu"</string>
<string name="wifi_calling_main_switch_title" msgid="4070224008346815634">"Izmantot Wi-Fi zvanus"</string>
<string name="default_see_all_apps_title" msgid="7481113230662612178">"Skatīt visas lietotnes"</string>
<string name="smart_forwarding_title" msgid="8368634861971949799">"Viedā pāradresācija"</string>
@@ -5189,8 +5188,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Izvēlieties, kas būs redzams ekrānā, kad planšetdators būs dokots. Ja izmantosiet ekrānsaudzētāju, ierīce var patērēt vairāk enerģijas."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Pielāgot"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Pielāgot ekrānsaudzētāju “<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>”"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Lai iespējotu brīvās formas atbalstu, nepieciešama atkārtota palaišana."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Lai piespiedu kārtā aktivizētu darbvirsmas režīmu sekundārajos displejos, nepieciešama atkārtota palaišana."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Lai iespējotu atbalstu mantotajam brīvās formas logu režīmam, nepieciešama atkārtota palaišana."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Lai mainītu atbalstu brīvās formas logu režīmam, nepieciešama atkārtota palaišana."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Lai piespiedu kārtā aktivizētu brīvās formas logu režīmu sekundārajos displejos, nepieciešama atkārtota palaišana."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Atkārtoti palaist tūlīt"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Atkārtoti palaist vēlāk"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Telpiskais audio"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index fda0a61..d1d4f0c 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додадени се лик и <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додадени се лик, отпечаток и <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додадени се лик, отпечатоци и <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Ова е потребно бидејќи е вклучена „Проверка на идентитетот“"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Опции"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Пристапност"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Физичка тастатура"</string>
- <string name="show_ime" msgid="4334255501724746849">"Користете тастатура на екран"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Прикажувај ја на екранот додека е активна физичката тастатура"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Игнорирај повторени притискања"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Тастатурата игнорира брзи притискања на истото копче што се повторуваат во <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Бавни копчиња"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Сепак продолжи"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Откажи"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Поставки за зголемување"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Движете ја лупата со 1 прст"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Повлечете со 1 прст за движење низ екранот"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Преместете го зголемување со повлекување со еден прст."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Преместете го зголемување со повлекување со два прста."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Недостапно кога се зголемува само дел од екранот"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Допрете копче за зумирање"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Брзо зумирајте на екранот за да ги направите содржините поголеми"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>За да зумирате:</b><br/> {0,number,integer}. Употребете кратенка за почеток на зголемувањето<br/> {1,number,integer}. Допрете го екранот<br/> {2,number,integer}. Повлечете со два прста за да се движите низ екранот<br/> {3,number,integer}. Штипнете со два прста за да го приспособите зумот<br/> {4,number,integer}. Употребете кратенка за крај на зголемувањето<br/><br/><b>За да зумирате привремено:</b><br/> {0,number,integer}. Погрижете се типот на зголемувањето да биде поставен на цел екран<br/> {1,number,integer}. Употребете кратенка за почеток на зголемувањето<br/> {2,number,integer}. Допрете и задржете каде било на екранот<br/> {3,number,integer}. Повлечете со прст за да се движите низ екранот<br/> {4,number,integer}. Подигнете го прстот за крај на зголемувањето"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>За да зумирате:</b><br/> {0,number,integer}. Употребете кратенка за почеток на зголемувањето<br/> {1,number,integer}. Допрете го екранот<br/> {2,number,integer}. Повлечете со 2 прста за да се движите низ екранот<br/> {3,number,integer}. Штипнете со 2 прста за да го приспособите зумот<br/> {4,number,integer}. Употребете кратенка за сопирање на зголемувањето<br/><br/> Може и да зумирате привремено и друго."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>За да зумирате:</b><br/> {0,number,integer}. Употребете кратенка за почеток на зголемувањето<br/> {1,number,integer}. Допрете го екранот<br/> {2,number,integer}. Повлечете со 1 или 2 прста за да се движите низ екранот<br/> {3,number,integer}. Штипнете со 2 прста за да го приспособите зумот<br/> {4,number,integer}. Употребете кратенка за сопирање на зголемувањето<br/><br/> Може и да зумирате привремено и друго."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Кога е вклучено зумирањето, може да зумирате на екранот.\n\n"<b>"За да зумирате"</b>", стартувајте го зголемувањето, па допрете каде било на екранот.\n"<ul><li>"Повлечете со два или повеќе прсти за да лизгате"</li>\n<li>"Штипнете со два или повеќе прсти за да го приспособите зумот"</li></ul>\n\n<b>"За да зумирате привремено"</b>", стартувајте го зголемувањето, а потоа допрете и задржете каде било на екранот.\n"<ul><li>"Повлечете за да се движите околу екранот"</li>\n<li>"Подигнете го прстот за да одзумирате"</li></ul>\n\n"Не може да зумирате на тастатурата или на лентата за навигација."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Страница <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> од <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Кратенка за копчето за пристапност"</string>
@@ -2232,8 +2227,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="1141723096904904336">"<b>За да започнете</b><br/> {0,number,integer}. oдете во поставките за пристапност<br/> {1,number,integer}. изберете функција и допрете ја кратенката<br/> {2,number,integer}. изберете дали сакате да користите копче или движење за пристап до функцијата<br/>"</string>
- <string name="accessibility_button_description" msgid="7669538706120092399">"<b>За да започнете</b><br/> {0,number,integer}. oдете во поставките за пристапност<br/> {1,number,integer}. изберете функција и допрете ја кратенката<br/> {2,number,integer}. изберете го копчето за пристап до функцијата<br/>"</string>
+ <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"<b>За да започнете</b><br/> {0,number,integer}. Одете во поставките за пристапност<br/> {1,number,integer}. Изберете функција и допрете ја кратенката<br/> {2,number,integer}. Изберете дали сакате да користите копче или движење за пристап до функцијата<br/>"</string>
+ <string name="accessibility_button_description" msgid="7669538706120092399">"<b>За да започнете</b><br/> {0,number,integer}. Одете во поставките за пристапност<br/> {1,number,integer}. Изберете функција и допрете ја кратенката<br/> {2,number,integer}. Изберете го копчето за пристап до функцијата<br/>"</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>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Создајте режим"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Приспособено"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ограничете ги прекините"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Исклучување на „Не вознемирувај“"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Алармите и звуците од аудиовизуелните содржини може да го прекинуваат"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Поставете распоред"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Распоред"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ч. <xliff:g id="MINUTES">%2$d</xliff:g> мин."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Автоматско вклучување"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Распоред"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Не вознемирувај во одредено време"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Правила за „Не вознемирувај“"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"отворете го известувањето"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Дозволи одложување на известувањата"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Точка за известување на икона за апликацијата"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Балончиња"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Балончиња"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Стави го разговорот во балонче"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Сите"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дозволете апликациите да занемаруваат"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Апликации што може да го прекинуваат режимот"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Изберете уште апликации"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Футрола за полнење"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батерија"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Табла за поставки"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Наметни режим на работна површина"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Наметнете го експерименталниот режим на работна површина на секундарните екрани"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Овозможете прозорци со менлива големина"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Овозможете поддршка за прозорци со слободна форма."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Овозм. прозорци со менлива големина на втор екран"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Овозможете прозорци со слободна форма само на втор екран."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Овозможи фиксна големина во режим со повеќе прозорци"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Овозможува апликации со фиксна големина да бидат во режим со повеќе прозорци"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Отфрли го наметнувањето темен режим"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Пред да се користи програмерската опција од 16 kB, партицијата со податоци на уредов треба да се конвертира во ext4. Во овој режим не може да се гарантира интегритетот на софтверот, а податоците складирани на телефонот додека е отклучен вчитувачот на систем може да бидат изложени на ризик. За да се активира опцијата од 16 kB, ќе биде потребно уште едно рестартирање по ова. Штом ќе влезете во овој режим, може да се префрлате меѓу режимите од 4 kB и 16 kB со едно рестартирање. Некои функции ќе бидат оневозможени во овие режими, па некои апликации можеби нема да функционираат. За да го вратите уредот во работен режим, ќе треба да се вратите во режимот од 4 kB, па да го заклучите вчитувачот на систем, којшто го ресетира уредот на фабрички поставки. Откако уредот успешно ќе се подигне во Android, оневозможете го отклучувањето OEM во „Програмерски опции“. По потврдувањето, уредот ќе се избрише трајно, а системот на датотеки ќе се промени во ext4. Кога ќе заврши ова, вратете се за да овозможите режим од 16 kB повторно."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Избриши ги сите податоци"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Неуспешно повторно форматирање и трајно бришење на партицијата со податоци во ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Потребно е отклучување на вчитувачот на системот"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Пред да може да се користи програмерската опција од 16 kB, треба да се отклучи вчитувачот на систем на уредов. Во овој режим не може да се гарантира интегритетот на софтверот, а податоците складирани на телефонот додека е отклучен вчитувачот на систем може да бидат изложени на ризик. При активирањето режим од 16 kB, ќе се избришат трајно сите кориснички податоци и поставки. Откако ќе се отклучи вчитувачот на систем, ќе бидат потребни две рестартирања за да се активира опцијата од 16 kB. Штом ќе влезете во овој режим, може да се префрлате меѓу режимите од 4 kB и 16 kB со едно рестартирање. Некои функции ќе бидат оневозможени во овие режими, па некои апликации можеби нема да функционираат. За да го вратите уредот во работен режим, ќе треба да се вратите во режимот од 4 kB, па да го заклучите OEM/вчитувачот на систем, којшто го ресетира уредот на фабрички поставки. Отклучете го вчитувачот на систем, па обидете се повторно. Инструкции како да го направите ова може да најдете на <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Се користи режимот за компатибилност со мемориски страници од 4 kB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Вие сте во режимот од 4 kB на режимот за компатибилност со мемориски страници. Во овој режим не може да се гарантира интегритетот на софтверот, а податоците складирани на телефонот додека е отклучен вчитувачот на систем може да бидат изложени на ризик. Некои функции ќе бидат оневозможени во овие режими, па некои апликации можеби нема да функционираат. За да влезете во работен режим повторно, мора да го заклучите вчитувачот на систем на уредот. Допрете за да прочитате повеќе."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Вие сте во режимот од 4 kB на режимот за компатибилност со мемориски страници. Во овој режим не може да се гарантира интегритетот на софтверот, а податоците складирани на телефонот додека е отклучен вчитувачот на систем може да бидат изложени на ризик. Некои функции ќе бидат оневозможени во овие режими, па некои апликации можеби нема да функционираат. За да влезете во работен режим повторно, мора да го заклучите вчитувачот на систем на уредот. Ова ќе го ресетира уредот на фабрички поставки повторно и ќе го врати на поставките за работен режим. Откако уредот успешно ќе се подигне во Android, оневозможете го отклучувањето OEM во „Програмерски опции“. Ако уредот не може да се подигне во Android или е нестабилен, преинсталирајте ги најновите фабрички слики на уредот од <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> или користете <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> и изберете „Трајно избриши ги податоците на уредот“, „Заклучи го вчитувачот на системот“ и „Force Flash all partitions“ (Наметни инсталирање на сите партиции)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Се користи режимот за компатибилност со мемориски страници од 16 kB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Вие сте во режимот од 16 KB на режимот за компатибилност на мемориски страници. Во овој режим не може да се гарантира интегритетот на софтверот, а податоците складирани на телефонот додека е отклучен вчитувачот на систем може да бидат изложени на ризик. Некои функции ќе бидат оневозможени во овие режими, па некои апликации можеби нема да функционираат. За да влезете во работен режим повторно, мора да се вратите во режим од 4 KB, па да го заклучите вчитувачот на систем на уредот. Допрете за да прочитате повеќе."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Вие сте во режимот од 16 KB на режимот за компатибилност на мемориски страници. Во овој режим не може да се гарантира интегритетот на софтверот, а податоците складирани на телефонот додека е отклучен вчитувачот на систем може да бидат изложени на ризик. Некои функции ќе бидат оневозможени во овие режими, па некои апликации можеби нема да функционираат. За да влезете во работен режим повторно, мора да се вратите во режим од 4 KB, па да го заклучите вчитувачот на систем на уредот. Ова ќе го ресетира уредот на фабрички поставки повторно и ќе го врати на поставките за работен режим. Откако уредот успешно ќе се подигне во Android, оневозможете го отклучувањето OEM во „Програмерски опции“. Ако уредот не може да се подигне во Android или е нестабилен, преинсталирајте ги најновите фабрички слики на уредот од <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> или користете <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> и изберете „Трајно избриши ги податоците на уредот“, „Заклучи го вчитувачот на системот“ и „Force Flash all partitions“ (Наметни инсталирање на сите партиции)."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Режим за компатибилност со мемориски страници од 16 kB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Прочитајте повеќе"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Ракувач со извештајот за грешки"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Изберете што да се прикажува на екранот кога таблетот е приклучен на док. Уредот може да користи повеќе енергија кога се користи штедач на екранот."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Приспособете"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Приспособете го <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Потребно е рестартирање за да се овозможи поддршка со слободна форма."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Потребно е рестартирање за да се присили режимот на компјутер на секундарни екрани."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Потребно е рестартирање за да се овозможи поддршка за застарени прозорци со менлива големина."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Потребно е рестартирање за да се промени поддршката за прозорци со менлива големина."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Потребно е рестартирање за да се присилат прозорци со менлива големина на секундарни екрани."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Рестартирај сега"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Рестартирај подоцна"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Просторен звук"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 641ea6e1..d4be889 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"മുഖവും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"മുഖവും ഫിംഗർപ്രിന്റും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"മുഖവും ഫിംഗർപ്രിന്റുകളും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ഐഡന്റിറ്റി പരിശോധന ഓണായിരിക്കുന്നതിനാൽ ഇത് ആവശ്യമാണ്"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"ഓപ്ഷനുകൾ"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ഉപയോഗസഹായി"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"ഫിസിക്കൽ കീബോർഡ്"</string>
- <string name="show_ime" msgid="4334255501724746849">"ഓൺ-സ്ക്രീൻ കീബോർഡ് ഉപയോഗിക്കുക"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"ഫിസിക്കൽ കീബോർഡ് സജീവമായിരിക്കുമ്പോൾ സ്ക്രീനിൽ നിലനിർത്തുക"</string>
<string name="bounce_keys" msgid="7419450970351743904">"ബൗൺസ് കീകൾ"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> മില്ലിസെക്കൻഡിനുള്ളിൽ ഒരേ കീ അതിവേഗം ആവർത്തിച്ച് അമർത്തുന്നത് കീബോർഡ് അവഗണിക്കും"</string>
<string name="slow_keys" msgid="2891452895499690837">"സ്ലോ കീകൾ"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"എന്തായാലും തുടരുക"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"റദ്ദാക്കുക"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"മാഗ്നിഫിക്കേഷൻ ക്രമീകരണം"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ഒരു വിരൽ ഉപയോഗിച്ച് മാഗ്നിഫയർ നീക്കുക"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"സ്ക്രീനിലുടനീളം നീങ്ങാൻ ഒരു വിരൽ ഉപയോഗിച്ച് വലിച്ചിടുക"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ഒരു വിരൽ കൊണ്ട് വലിച്ച് മാഗ്നിഫിക്കേഷൻ ഏരിയ നീക്കുക."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"രണ്ട് വിരലുകൾ കൊണ്ട് വലിച്ച് മാഗ്നിഫിക്കേഷൻ ഏരിയ നീക്കുക."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"സ്ക്രീനിന്റെ ഒരു ഭാഗം മാത്രം വലുതാക്കിയിരിക്കുമ്പോൾ ലഭ്യമല്ല"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"സൂം ചെയ്യുന്നതിന് ബട്ടണിൽ ടാപ്പ് ചെയ്യുക"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ഉള്ളടക്കം വലുതാക്കാൻ സ്ക്രീനിൽ വേഗത്തിൽ സൂം ഇൻ ചെയ്യുക"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>സൂം ഇൻ ചെയ്യാൻ:</b><br/> {0,number,integer}. മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാൻ കുറുക്കുവഴി ഉപയോഗിക്കുക<br/> {1,number,integer}. സ്ക്രീനിൽ ടാപ്പ് ചെയ്യുക<br/> {2,number,integer}. സ്ക്രീനിലുടനീളം നീക്കാൻ 2 വിരലുകൾ ഉപയോഗിച്ച് വലിച്ചിടുക<br/> {3,number,integer}. സൂം ക്രമീകരിക്കാൻ 2 വിരലുകൾ ഉപയോഗിച്ച് പിഞ്ച് ചെയ്യുക<br/> {4,number,integer}. മാഗ്നിഫിക്കേഷൻ നിർത്താൻ കുറുക്കുവഴി ഉപയോഗിക്കുക<br/><br/> <b>താൽക്കാലികമായി സൂം ഇൻ ചെയ്യാൻ:</b><br/> {0,number,integer}. നിങ്ങളുടെ മാഗ്നിഫിക്കേഷൻ തരം പൂർണ്ണ സ്ക്രീനിലേക്ക് സജ്ജീകരിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക<br/> {1,number,integer}. മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാൻ കുറുക്കുവഴി ഉപയോഗിക്കുക<br/> {2,number,integer}. സ്ക്രീനിൽ എവിടെയെങ്കിലും സ്പർശിച്ച് പിടിക്കുക<br/> {3,number,integer}. സ്ക്രീനിലുടനീളം നീക്കാൻ വിരൽ ഉപയോഗിച്ച് വലിച്ചിടുക<br/> {4,number,integer}. മാഗ്നിഫിക്കേഷൻ നിർത്താൻ വിരൽ സ്ക്രീനിൽ നിന്ന് എടുക്കുക"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>സൂം ഇൻ ചെയ്യാൻ:</b><br/> {0,number,integer}. മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാൻ കുറുക്കുവഴി ഉപയോഗിക്കുക<br/> {1,number,integer}. സ്ക്രീനിൽ ടാപ്പ് ചെയ്യുക<br/> {2,number,integer}. സ്ക്രീനിലുടനീളം നീക്കാൻ 2 വിരലുകൾ ഉപയോഗിച്ച് വലിച്ചിടുക<br/> {3,number,integer}. സൂം ക്രമീകരിക്കാൻ 2 വിരലുകൾ ഉപയോഗിച്ച് പിഞ്ച് ചെയ്യുക<br/> {4,number,integer}. മാഗ്നിഫിക്കേഷൻ നിർത്താൻ കുറുക്കുവഴി ഉപയോഗിക്കുക<br/><br/> നിങ്ങൾക്ക് താൽകാലികമായും മറ്റും സൂം ഇൻ ചെയ്യാനും കഴിയും."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>സൂം ഇൻ ചെയ്യാൻ:</b><br/> {0,number,integer}. മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാൻ കുറുക്കുവഴി ഉപയോഗിക്കുക<br/> {1,number,integer}. സ്ക്രീനിൽ ടാപ്പ് ചെയ്യുക<br/> {2,number,integer}. സ്ക്രീനിലുടനീളം നീക്കാൻ 1 അല്ലെങ്കിൽ 2 വിരലുകൾ ഉപയോഗിച്ച് വലിച്ചിടുക<br/> {3,number,integer}. സൂം ക്രമീകരിക്കാൻ 2 വിരലുകൾ ഉപയോഗിച്ച് പിഞ്ച് ചെയ്യുക<br/> {4,number,integer}. മാഗ്നിഫിക്കേഷൻ നിർത്താൻ കുറുക്കുവഴി ഉപയോഗിക്കുക<br/><br/> നിങ്ങൾക്ക് താൽകാലികമായും മറ്റും സൂം ഇൻ ചെയ്യാനും കഴിയും."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"മാഗ്നിഫിക്കേഷൻ ഓണാക്കിയിരിക്കുമ്പോൾ, നിങ്ങളുടെ സ്ക്രീനിൽ സൂം ഇൻ ചെയ്യാവുന്നതാണ്.\n\n"<b>"സൂം ചെയ്യാൻ"</b>", മാഗ്നിഫിക്കേഷൻ ആരംഭിച്ച ശേഷം നിങ്ങളുടെ സ്ക്രീനിൽ എവിടെയെങ്കിലും ടാപ്പ് ചെയ്യുക.\n"<ul><li>"സ്ക്രോൾ ചെയ്യാൻ രണ്ടോ അതിലധികമോ വിരലുകൾ ഇഴയ്ക്കുക"</li>\n<li>"സൂം ക്രമീകരിക്കാൻ രണ്ടോ അതിലധികമോ വിരലുകൾ പിഞ്ച് ചെയ്യുക"</li></ul>\n\n<b>"താൽക്കാലികമായി സൂം ചെയ്യാൻ"</b>", മാഗ്നിഫിക്കേഷൻ ആരംഭിച്ച ശേഷം സ്ക്രീനിൽ എവിടെയെങ്കിലും സ്പർശിച്ചുപിടിക്കുക.\n"<ul><li>"സ്ക്രീനിന് ചുറ്റും നീക്കാൻ വലിച്ചിടുക"</li>\n<li>"സൂം ഔട്ട് ചെയ്യാൻ വിരൽ എടുക്കുക"</li></ul>\n\n"കീബോർഡിലും നാവിഗേഷൻ ബാറിലും നിങ്ങൾക്ക് സൂം ഇൻ ചെയ്യാനാവില്ല."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> പേജുകളിൽ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>-ാമത്തെ പേജ്"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ഉപയോഗസഹായി ബട്ടണിന്റെ കുറുക്കുവഴി"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"മോഡ് സൃഷ്ടിക്കുക"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ഇഷ്ടാനുസൃതം"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"തടസ്സങ്ങൾ പരിമിതപ്പെടുത്തുക"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'ശല്യപ്പെടുത്തരുത്\' ഓണാക്കുക"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"അലാറങ്ങൾക്കും മീഡിയ ശബ്ദങ്ങൾക്കും തടസ്സപ്പെടുത്താൻ കഴിയും"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ഷെഡ്യൂൾ സജ്ജീകരിക്കുക"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"ഷെഡ്യൂൾ"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> മണിക്കൂർ, <xliff:g id="MINUTES">%2$d</xliff:g> മിനിറ്റ്"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"സ്വയമേവ ഓണാക്കുക"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ഷെഡ്യൂള് ചെയ്യുക"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"ചില സമയങ്ങളിൽ ഫോൺ നിശബ്ദമാക്കുക"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"\'ശല്യപ്പെടുത്തരുത്\' നിയമങ്ങൾ സജ്ജമാക്കുക"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"അറിയിപ്പ് തുറക്കുക"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"അറിയിപ്പ് സ്നൂസ് ചെയ്യൽ അനുവദിക്കുക"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ആപ്പ് ഐക്കണിലെ അറിയിപ്പ് ഡോട്ട്"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"ബബിളുകൾ"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ബബിളുകൾ"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ഈ സംഭാഷണം ബബിൾ ചെയ്യുക"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"എല്ലാം"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"അസാധുവാക്കാൻ ആപ്പുകളെ അനുവദിക്കുക"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"തടസ്സപ്പെടുത്താൻ കഴിയുന്ന ആപ്പുകൾ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"കൂടുതൽ ആപ്പുകൾ തിരഞ്ഞെടുക്കുക"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"കെയ്സ്"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ബാറ്ററി"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ക്രമീകരണ പാനൽ"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"ഡെസ്ക്ടോപ്പ് മോഡിലേക്ക് നിർബന്ധിച്ച് വരുത്തുക"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ദ്വിതീയ ഡിസ്പ്ലേകളിൽ, പരീക്ഷണാത്മക ഡെസ്ക്ടോപ്പ് മോഡിലേക്ക് നിർബന്ധിച്ച് വരുത്തുക"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"ഫ്രീഫോം വിൻഡോകൾ പ്രവർത്തനക്ഷമമാക്കുക"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"ഫ്രീഫോം വിൻഡോകൾക്കുള്ള പിന്തുണ പ്രവർത്തനക്ഷമമാക്കുക."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"സെക്കൻഡ് ഡിസ്പ്ലേയിൽ ഫ്രീഫോം വിൻഡോയിംഗ് സജീവമാക്കൂ"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"സെക്കൻഡറി ഡിസ്പ്ലേയിൽ മാത്രം ഫ്രീഫോം വിൻഡോകൾ പ്രവർത്തനക്ഷമമാക്കൂ."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"വലുപ്പം മാറ്റാനാകാത്തവ മൾട്ടി വിൻഡോയിൽ പ്രവർത്തനക്ഷമമാക്കൂ"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"വലുപ്പം മാറ്റാൻ കഴിയാത്ത ആപ്പുകൾ മൾട്ടി വിൻഡോയിൽ അനുവദിക്കുന്നു"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"നിർബന്ധിത ഡാർക്ക് മോഡ് അസാധുവാക്കുക"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16KB ഡെവലപ്പർ ഓപ്ഷൻ ഉപയോഗിക്കുന്നതിന് മുമ്പ് ഈ ഉപകരണത്തിന്റെ ഡാറ്റ പാർട്ടീഷൻ ext4 എന്നതിലേക്ക് പരിവർത്തനം ചെയ്യേണ്ടതുണ്ട്. ഈ മോഡിൽ സോഫ്റ്റ്വെയർ സമഗ്രത സംബന്ധിച്ച് ഉറപ്പ് നൽകാനാകില്ല, കൂടാതെ ബൂട്ട് ലോഡർ അൺലോക്ക് ചെയ്തിരിക്കുമ്പോൾ ഫോണിൽ സംഭരിച്ചിരിക്കുന്ന ഏതെങ്കിലും ഡാറ്റ അപകടത്തിലായേക്കാം. 16KB ഓപ്ഷൻ സജീവമാക്കുന്നതിന് ഇതിന് ശേഷം ഒരു റീബൂട്ട് കൂടി വേണ്ടി വരും. നിങ്ങൾ ഈ മോഡിൽ ആയിക്കഴിഞ്ഞ്, ഒരു സിംഗിൾ റീബൂട്ടിലൂടെ 4KB, 16KB മോഡുകൾക്കിടയിൽ പരസ്പരം മാറാം. ഈ മോഡുകളിൽ ചില ഫീച്ചറുകൾ പ്രവർത്തനരഹിതമാക്കുന്നതിനാൽ, ചില ആപ്പുകൾ പ്രവർത്തിച്ചേക്കില്ല. ഉപകരണത്തെ തിരികെ പ്രൊഡക്ഷൻ മോഡിലേക്ക് മാറ്റുന്നതിന്, നിങ്ങൾ 4KB മോഡിലേക്ക് തിരികെ മാറുകയും ബൂട്ട് ലോഡർ ലോക്ക് ചെയ്യുകയും വേണം, ഇത് ഉപകരണത്തെ ഫാക്ടറി റീസെറ്റ് ചെയ്യും. ഉപകരണം വിജയകരമായി Android-ലേക്ക് ബൂട്ട് ചെയ്ത് കഴിഞ്ഞ്, ഡെവലപ്പർ ഓപ്ഷനുകളിൽ OEM അൺലോക്ക് ചെയ്യൽ പ്രവർത്തനരഹിതമാക്കുക. സ്ഥിരീകരണത്തിന് ശേഷം ഉപകരണം തുടച്ചുനീക്കുകയും ഫയൽസിസ്റ്റം ext4 എന്നതിലേക്ക് മാറ്റുകയും ചെയ്യും. ഇത് പൂർത്തിയായി കഴിഞ്ഞ്, 16KB വീണ്ടും പ്രവർത്തനക്ഷമമാക്കാൻ തിരികെ വരിക."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"എല്ലാ ഡാറ്റയും മായ്ക്കുക"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ഡാറ്റ പാർട്ടീഷൻ ext4 എന്നതിലേക്ക് വീണ്ടും ഫോർമാറ്റ് ചെയ്യാനും തുടച്ചുനീക്കാനും കഴിഞ്ഞില്ല."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"ബൂട്ട് ലോഡർ അൺലോക്ക് ആവശ്യമാണ്"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16KB ഡെവലപ്പർ ഓപ്ഷൻ ഉപയോഗിക്കുന്നതിന് മുമ്പ് ഈ ഉപകരണത്തിന്റെ ബൂട്ട് ലോഡർ അൺലോക്ക് ചെയ്യണം. ഈ മോഡിൽ സോഫ്റ്റ്വെയർ സമഗ്രത സംബന്ധിച്ച് ഉറപ്പ് നൽകാനാകില്ല, കൂടാതെ ബൂട്ട് ലോഡർ അൺലോക്ക് ചെയ്തിരിക്കുമ്പോൾ ഫോണിൽ സംഭരിച്ചിരിക്കുന്ന ഏതെങ്കിലും ഡാറ്റ അപകടത്തിലായേക്കാം. 16KB മോഡ് സജീവമാക്കുമ്പോൾ എല്ലാ ഉപയോക്തൃ ഡാറ്റയും ക്രമീകരണവും തുടച്ചുനീക്കും. ബൂട്ട് ലോഡർ അൺലോക്ക് ചെയ്ത് കഴിഞ്ഞ്, 16KB ഓപ്ഷൻ സജീവമാക്കുന്നതിന് രണ്ട് റീബൂട്ടുകൾ വേണ്ടി വരും. നിങ്ങൾ ഈ മോഡിൽ ആയിക്കഴിഞ്ഞ്, ഒരു സിംഗിൾ റീബൂട്ടിലൂടെ 4KB, 16KB മോഡുകൾക്കിടയിൽ പരസ്പരം മാറാം. ഈ മോഡുകളിൽ ചില ഫീച്ചറുകൾ പ്രവർത്തനരഹിതമാക്കുന്നതിനാൽ, ചില ആപ്പുകൾ പ്രവർത്തിച്ചേക്കില്ല. ഉപകരണത്തെ തിരികെ പ്രൊഡക്ഷൻ മോഡിലേക്ക് മാറ്റുന്നതിന്, നിങ്ങൾ 4KB മോഡിലേക്ക് തിരികെ മാറുകയും OEM/ബൂട്ട് ലോഡർ ലോക്ക് ചെയ്യുകയും വേണം (ഇത് ഉപകരണത്തെ ഫാക്ടറി റീസെറ്റ് ചെയ്യും). ബൂട്ട് ലോഡർ അൺലോക്ക് ചെയ്യുക അമർത്തിയ ശേഷം വീണ്ടും ശ്രമിക്കുക. ഇത് എങ്ങനെ ചെയ്യണമെന്നത് സംബന്ധിച്ച നിർദ്ദേശങ്ങൾ at <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> എന്നതിൽ കാണാനാകും"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4KB പേജ്-ആഗ്നോസ്റ്റിക് മോഡ് ഉപയോഗിക്കുന്നു"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"നിങ്ങൾ പേജ്-ആഗ്നോസ്റ്റിക് മോഡിന്റെ 4KB മോഡിലാണ്. ഈ മോഡിൽ സോഫ്റ്റ്വെയർ സമഗ്രത സംബന്ധിച്ച് ഉറപ്പ് നൽകാനാകില്ല, കൂടാതെ ബൂട്ട് ലോഡർ അൺലോക്ക് ചെയ്തിരിക്കുമ്പോൾ ഫോണിൽ സംഭരിച്ചിരിക്കുന്ന ഏതെങ്കിലും ഡാറ്റ അപകടത്തിലായേക്കാം. ഈ മോഡുകളിൽ ചില ഫീച്ചറുകൾ പ്രവർത്തനരഹിതമാക്കുന്നതിനാൽ, ചില ആപ്പുകൾ പ്രവർത്തിച്ചേക്കില്ല. പ്രൊഡക്ഷൻ മോഡിൽ തിരികെ പ്രവേശിക്കുന്നതിന്, നിങ്ങൾ ഉപകരണത്തിന്റെ ബൂട്ട് ലോഡർ ലോക്ക് ചെയ്യണം. കൂടുതൽ വായിക്കാൻ ടാപ്പ് ചെയ്യുക."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"നിങ്ങൾ പേജ്-ആഗ്നോസ്റ്റിക് മോഡിന്റെ 4KB മോഡിലാണ്. ഈ മോഡിൽ സോഫ്റ്റ്വെയർ സമഗ്രത സംബന്ധിച്ച് ഉറപ്പ് നൽകാനാകില്ല, കൂടാതെ ബൂട്ട് ലോഡർ അൺലോക്ക് ചെയ്തിരിക്കുമ്പോൾ ഫോണിൽ സംഭരിച്ചിരിക്കുന്ന ഏതെങ്കിലും ഡാറ്റ അപകടത്തിലായേക്കാം. ഈ മോഡുകളിൽ ചില ഫീച്ചറുകൾ പ്രവർത്തനരഹിതമാക്കുന്നതിനാൽ, ചില ആപ്പുകൾ പ്രവർത്തിച്ചേക്കില്ല. പ്രൊഡക്ഷൻ മോഡിൽ തിരികെ പ്രവേശിക്കുന്നതിന്, നിങ്ങൾ ഉപകരണത്തിന്റെ ബൂട്ട് ലോഡർ ലോക്ക് ചെയ്യണം. ഇത് ഉപകരണത്തെ വീണ്ടും ഫാക്ടറി റീസെറ്റ് ചെയ്യുകയും പ്രൊഡക്ഷൻ ക്രമീകരണത്തിലേക്ക് പുനഃസ്ഥാപിക്കുകയും ചെയ്യും. ഉപകരണം വിജയകരമായി Android-ലേക്ക് ബൂട്ട് ചെയ്ത് കഴിഞ്ഞ്, ഡെവലപ്പർ ഓപ്ഷനുകളിൽ OEM അൺലോക്ക് ചെയ്യൽ പ്രവർത്തനരഹിതമാക്കുക. ഉപകരണം Android-ലേക്ക് ബൂട്ട് ചെയ്യാനായില്ലെങ്കിലോ അസ്ഥിരമാണെങ്കിലോ, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> എന്നതിൽ നിന്നുള്ള ഏറ്റവും പുതിയ ഫാക്ടറി ചിത്രങ്ങൾ ഉപയോഗിച്ച് ഉപകരണം അപ്ഡേറ്റ് ചെയ്ത ശേഷം \'ഉപകരണം തുടച്ചുനീക്കുക\', \'ബൂട്ട് ലോഡർ ലോക്ക് ചെയ്യുക\', \'എല്ലാ പാർട്ടീഷനുകളും ഫോഴ്സ് ഫ്ലാഷ് ചെയ്യുക\' എന്നതിലേക്ക് പോകുക."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16KB പേജ്-ആഗ്നോസ്റ്റിക് മോഡ് ഉപയോഗിക്കുന്നു"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"നിങ്ങൾ പേജ് വലുപ്പം തിരിച്ചറിയൽ മോഡിന്റെ 16KB മോഡിലാണ്. ഈ മോഡിൽ സോഫ്റ്റ്വെയർ സമഗ്രത സംബന്ധിച്ച് ഉറപ്പ് നൽകാനാകില്ല, കൂടാതെ ബൂട്ട് ലോഡർ അൺലോക്ക് ചെയ്തിരിക്കുമ്പോൾ ഫോണിൽ സംഭരിച്ചിരിക്കുന്ന ഏതെങ്കിലും ഡാറ്റ അപകടത്തിലായേക്കാം. ഈ മോഡുകളിൽ ചില ഫീച്ചറുകൾ പ്രവർത്തനരഹിതമാക്കുന്നതിനാൽ, ചില ആപ്പുകൾ പ്രവർത്തിച്ചേക്കില്ല. പ്രൊഡക്ഷൻ മോഡിൽ തിരികെ പ്രവേശിക്കുന്നതിന്, നിങ്ങൾ 4KB മോഡിലേക്ക് തിരികെ മാറുകയും ഉപകരണത്തിന്റെ ബൂട്ട് ലോഡർ ലോക്ക് ചെയ്യുകയും വേണം. കൂടുതൽ വായിക്കാൻ ടാപ്പ് ചെയ്യുക."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"നിങ്ങൾ പേജ് വലുപ്പം തിരിച്ചറിയൽ മോഡിന്റെ 16KB മോഡിലാണ്. ഈ മോഡിൽ സോഫ്റ്റ്വെയർ സമഗ്രത സംബന്ധിച്ച് ഉറപ്പ് നൽകാനാകില്ല, കൂടാതെ ബൂട്ട് ലോഡർ അൺലോക്ക് ചെയ്തിരിക്കുമ്പോൾ ഫോണിൽ സംഭരിച്ചിരിക്കുന്ന ഏതെങ്കിലും ഡാറ്റ അപകടത്തിലായേക്കാം. ഈ മോഡുകളിൽ ചില ഫീച്ചറുകൾ പ്രവർത്തനരഹിതമാക്കുന്നതിനാൽ, ചില ആപ്പുകൾ പ്രവർത്തിച്ചേക്കില്ല. പ്രൊഡക്ഷൻ മോഡിൽ തിരികെ പ്രവേശിക്കുന്നതിന്, നിങ്ങൾ 4KB മോഡിലേക്ക് തിരികെ മാറുകയും ഉപകരണത്തിന്റെ ബൂട്ട് ലോഡർ ലോക്ക് ചെയ്യുകയും വേണം. ഇത് ഉപകരണത്തെ വീണ്ടും ഫാക്ടറി റീസെറ്റ് ചെയ്യുകയും പ്രൊഡക്ഷൻ ക്രമീകരണത്തിലേക്ക് പുനഃസ്ഥാപിക്കുകയും ചെയ്യും. ഉപകരണം വിജയകരമായി Android-ലേക്ക് ബൂട്ട് ചെയ്ത് കഴിഞ്ഞ്, ഡെവലപ്പർ ഓപ്ഷനുകളിൽ OEM അൺലോക്ക് ചെയ്യൽ പ്രവർത്തനരഹിതമാക്കുക. ഉപകരണം Android-ലേക്ക് ബൂട്ട് ചെയ്യാനായില്ലെങ്കിലോ അസ്ഥിരമാണെങ്കിലോ, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> -ൽ നിന്നുള്ള ഏറ്റവും പുതിയ ഫാക്ടറി ഇമേജുകൾ ഉപയോഗിച്ച് ഉപകരണം വീണ്ടും ഫ്ലാഷ് ചെയ്യുക അല്ലെങ്കിൽ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ഉപയോഗിക്കുക, തുടർന്ന് \'ഉപകരണം തുടച്ചുനീക്കുക\', \'ബൂട്ട് ലോഡർ ലോക്ക് ചെയ്യുക\', \'എല്ലാ പാർട്ടീഷനുകളും ഫോഴ്സ് ഫ്ലാഷ് ചെയ്യുക\' എന്നിവ തിരഞ്ഞെടുക്കുക."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB പേജ്-ആഗ്നോസ്റ്റിക് മോഡ്"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"കൂടുതൽ വായിക്കുക"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"ബഗ് റിപ്പോർട്ട് ഹാൻഡ്ലർ"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"നിങ്ങളുടെ ടാബ്ലെറ്റ് ഡോക്ക് ചെയ്തിരിക്കുമ്പോൾ സ്ക്രീനിൽ എന്ത് കാണണമെന്ന് തിരഞ്ഞെടുക്കുക. സ്ക്രീൻ സേവർ ഉപയോഗിക്കുമ്പോൾ ഉപകരണം കൂടുതൽ ഊർജ്ജം ഉപയോഗിച്ചേക്കാം."</string>
<string name="customize_button_title" msgid="1110284655990203359">"ഇഷ്ടാനുസൃതമാക്കുക"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ഇഷ്ടാനുസൃതമാക്കുക"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ഫ്രീംഫോം പിന്തുണ പ്രവർത്തനക്ഷമമാക്കാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ദ്വിതീയ ഡിസ്പ്ലേകളെ നിർബന്ധിതമായി ഡെസ്ക്ക്ടോപ്പ് മോഡിലാക്കാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"ലെഗസി ഫ്രീഫോം വിൻഡോയിംഗ് പിന്തുണ പ്രവർത്തനക്ഷമമാക്കാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"ഫ്രീഫോം വിൻഡോയിംഗ് പിന്തുണ മാറ്റാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"സെക്കൻഡറി ഡിസ്പ്ലേകളിൽ ഫ്രീഫോം വിൻഡോയിംഗ് നിർബന്ധമാക്കാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ഇപ്പോൾ റീബൂട്ട് ചെയ്യുക"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"പിന്നീട് റീബൂട്ട് ചെയ്യുക"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"സ്പേഷ്യൽ ഓഡിയോ"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 5d19131..d9dfef7 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Царай болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Царай, хурууны хээ болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Царай, хурууны хээ болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Таниулбар шалгагч асаалттай тул энэ нь шаардлагатай"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Сонголт"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Хандалт"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Биет гар"</string>
- <string name="show_ime" msgid="4334255501724746849">"Дэлгэц дээрх гарыг ашиглах"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Биет гар идэвхтэй үед үүнийг дэлгэцэд харуулна уу"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Ойх түлхүүрүүд"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Гар нь <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мс доторх нэг товчлуурын шуурхай давтагдсан даралтыг үл хэрэгсэнэ"</string>
<string name="slow_keys" msgid="2891452895499690837">"Удаан товчнууд"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ямартай ч үргэлжлүүлэх"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Цуцлах"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Томруулах тохиргоо"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Томруулагчийг 1 хуруугаараа зөөх"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Дэлгэцийн эргэн тойронд очихын тулд 1 хуруугаараа чирнэ үү"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Нэг хуруугаар чирч, томруулах хэсгийг зөөнө үү."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Хоёр хуруугаар чирч, томруулах хэсгийг зөөнө үү."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Дэлгэцийн зөвхөн нэг хэсгийг томруулж байхад боломжгүй"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Томруулахын тулд товчлуурыг товшино уу"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Контентыг илүү том болгохын тулд дэлгэц дээр шуурхай томруулна уу"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Томруулахын тулд:</b><br/> {0,number,integer}. Томруулах онцлогийг эхлүүлэхийн тулд товчлол ашиглана уу<br/> {1,number,integer}. Дэлгэцийг товшино уу<br/> {2,number,integer}. Дэлгэцийн эргэн тойронд шилжихийн тулд 2 хуруугаа чирнэ үү<br/> {3,number,integer}. Томруулалтыг тохируулахын тулд 2 хуруугаараа чимхэнэ үү<br/> {4,number,integer}. Томруулах онцлогийг зогсоохын тулд товчлол ашиглана уу<br/><br/> <b>Түр хугацаанд томруулахын тулд:</b><br/> {0,number,integer}. Таны томруулах төрлийг бүтэн дэлгэц болгож тохируулсан эсэхийг шалгана уу<br/> {1,number,integer}. Томруулах онцлогийг эхлүүлэхийн тулд товчлол ашиглана уу<br/> {2,number,integer}. Дэлгэцийн аль нэг хэсгийг удаан дарна уу<br/> {3,number,integer}. Дэлгэцийн эргэн тойронд шилжихийн тулд хуруугаа чирнэ үү<br/> {4,number,integer}. Томруулах онцлогийг зогсоохын тулд хуруугаа хөндийрүүлнэ үү"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Томруулахын тулд:</b><br/> {0,number,integer}. Томруулж эхлэхийн тулд товчлол ашиглана уу<br/> {1,number,integer}. Дэлгэц дээр товшино уу<br/> {2,number,integer}. Дэлгэцийн эргэн тойронд шилжихийн тулд 2 хуруугаараа чирнэ үү<br/> {3,number,integer}. Томруулах хэмжээг тохируулахын тулд 2 хуруугаараа чимхэнэ үү<br/> {4,number,integer}. Томруулахыг зогсоохын тулд товчлолыг ашиглана уу<br/><br/> Та мөн түр зуур томруулах болон бусад зүйлийг хийх боломжтой."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Томруулахын тулд:</b><br/> {0,number,integer}. Томруулж эхлэхийн тулд товчлол ашиглана уу<br/> {1,number,integer}. Дэлгэц дээр товшино уу<br/> {2,number,integer}. Дэлгэцийн эргэн тойронд шилжихийн тулд 1 эсвэл 2 хуруугаараа чирнэ үү<br/> {3,number,integer}. Томруулах хэмжээг тохируулахын тулд 2 хуруугаараа чимхэнэ үү<br/> {4,number,integer}. Томруулахыг зогсоохын тулд товчлолыг ашиглана уу<br/><br/> Та мөн түр зуур томруулах болон бусад зүйлийг хийх боломжтой."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Томруулах сонголт асаалттай үед та дэлгэцээ томруулж болно.\n\n"<b>"Томруулахын тулд "</b>" томруулах сонголтыг эхлүүлж, дэлгэцийн аль нэг хэсгийг товшино уу.\n"<ul><li>"Гүйлгэхийн тулд 2 эсвэл түүнээс дээш хуруугаараа чирнэ үү"</li>\n<li>"Томруулах хэмжээг тохируулахын тулд 2 эсвэл түүнээс дээш хуруугаараа чимхэнэ үү"</li></ul>\n\n<b>"Түр хугацаанд томруулахын тулд "</b>" томруулах сонголтыг эхлүүлээд, дэлгэцийн аль нэг хэсэг дээр удаан дарна уу.\n"<ul><li>"Дэлгэцийн эргэн тойронд очихын тулд чирнэ үү"</li>\n<li>"Жижигрүүлэхийн тулд хуруугаа авна уу"</li></ul>\n\n"Та гар эсвэл навигацын самбарт томруулах боломжгүй."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>-н <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>-р хуудас"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Хандалтын товчлуурын товчлол"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Горим үүсгэх"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Захиалгат"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Саад болох зүйлсийг хязгаарлах"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Бүү саад бол горимыг асаах"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Сэрүүлэг болон медиагийн ая нь тасалдуулах боломжтой"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Хуваарь тохируулах"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Хуваарь"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> цаг, <xliff:g id="MINUTES">%2$d</xliff:g> мин"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Автоматаар асаах"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Хуваарь"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Утасны дууг тодорхой цагт хаах"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Бүү саад бол горимын дүрмийг тохируулах"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"мэдэгдлийг нээх"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Мэдэгдлийг түр хойшлуулахыг зөвшөөрөх"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Аппын дүрс тэмдэг дэх мэдэгдлийн цэг"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Бөмбөлгүүд"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Бөмбөлгүүд"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Энэ харилцан яриаг бөмбөлөг болгох"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Бүгд"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Аппуудад дарахыг нь зөвшөөрөх"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Тасалдуулах боломжтой аппууд"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Бусад аппыг сонгох"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Гэр"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарей"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Тохиргооны самбар"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Дэлгэцийн горимыг хүчлэх"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Дэлгэцийн туршилтын горимыг хоёрдогч дэлгэцэд хүчлэх"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Чөлөөт хэлбэрийн цонхыг идэвхжүүлэх"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Чөлөөт хэлбэрийн цонхны дэмжлэгийг идэвхжүүлнэ үү."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Хоёрдогч дэлгэцэд чөлөөт хэлбэрийн цонхыг асаа"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Зөвхөн хоёрдогч дэлгэц дээр чөлөөт хэлбэрийн цонхыг идэвхжүүлнэ үү."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Хэмжээг өөрчлөх боломжгүй аппуудыг олон цонхонд идэвхжүүлэх"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Хэмжээг нь өөрчлөх боломжгүй аппуудыг олон цонхонд байхыг нь зөвшөөрнө"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Хүчээр бүдгэрүүлэхийг дарах"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16 КБ-ын хөгжүүлэгчийн тохиргоог ашиглаж эхлэхийн өмнө энэ төхөөрөмжийн өгөгдлийн хуваалтыг ext4 рүү хөрвүүлэх шаардлагатай. Энэ горимд программ хангамжийн халдашгүй байдалд баталгаа өгөх боломжгүй бөгөөд эхэлж ачаалагчийн түгжээг тайлсан байхад утсан дээр хадгалсан аливаа өгөгдөл эрсдэлд орж магадгүй. 16 КБ-ын тохиргоог идэвхжүүлэхэд үүний дараа ахин нэг удаа дахин асаах шаардлагатай болно. Та энэ горимд орсны дараа нэг удаа дахин асааснаар 4 КБ, 16 КБ-ын хооронд нааш, цааш сэлгэх боломжтой. Зарим онцлогийг эдгээр горимд идэвхгүй болгох тул зарим аппликэйшн ажиллахгүй байж магадгүй. Төхөөрөмжийг үйлдвэрлэлийн горим руу буцаахын тулд та 4 КБ горим руу буцаж сэлгэж, дараа нь эхэлж ачаалагчийг түгжих шаардлагатай бөгөөд энэ нь төхөөрөмжийг үйлдвэрийн тохиргоонд шинэчилнэ. Тухайн төхөөрөмжийг Android руу амжилттай ачаалсны дараа Хөгжүүлэгчийн тохиргоонд OEM түгжээг тайлахыг идэвхгүй болгоно уу. Баталгаажуулсны дараа тухайн төхөөрөмжийг арчих бөгөөд файлын системийг ext4 болгож өөрчилнө. Үүнийг дууссаны дараа 16 КБ-ыг дахин идэвхжүүлэхийн тулд буцаж ирнэ үү."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Бүх өгөгдлийг устгах"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Өгөгдлийн хуваалтыг ext4 болгож дахин форматалж, арчиж чадсангүй."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Эхэлж ачаалагчийн түгжээг тайлах шаардлагатай"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16 КБ-ын хөгжүүлэгчийн тохиргоог ашиглахын өмнө энэ төхөөрөмжид эхэлж ачаалагчийн түгжээг тайлсан байх шаардлагатай. Энэ горимд программ хангамжийн халдашгүй байдалд баталгаа өгөх боломжгүй бөгөөд эхэлж ачаалагчийн түгжээг тайлсан байхад утсан дээр хадгалсан аливаа өгөгдөл эрсдэлд орж магадгүй. 16 КБ-ын горимыг идэвхжүүлэх үед хэрэглэгчийн бүх өгөгдөл, тохиргоог арчина. Эхэлж ачаалагчийн түгжээг тайлсны дараа 16 КБ-ын тохиргоог идэвхжүүлэхэд хоёр удаа дахин асаахыг шаардана. Та энэ горимд орсны дараа нэг удаа дахин асааснаар 4 КБ, 16 КБ-ын хооронд нааш, цааш сэлгэх боломжтой. Зарим онцлогийг эдгээр горимд идэвхгүй болгох тул зарим аппликэйшн ажиллахгүй байж магадгүй. Төхөөрөмжийг үйлдвэрлэлийн горим руу буцаахын тулд та 4 КБ горим руу буцаж сэлгэж, дараа нь төхөөрөмжийн OEM/эхэлж ачаалагчийг түгжинэ (энэ нь төхөөрөмжийг үйлдвэрийн тохиргоонд шинэчилнэ). Эхэлж ачаалагчийн түгжээг тайлаад, дахин оролдоно уу. Та үүнийг хэрхэн хийх зааварчилгааг <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> дээрээс харах боломжтой"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4 КБ дурын хэмжээтэй хуудасны (page-agnostic) горимыг ашиглаж байна"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Та хуудасны хэмжээгээ сэлгэж болох (page-agnostic) горимын 4 КБ горимд байна. Энэ горимд программ хангамжийн халдашгүй байдалд баталгаа өгөх боломжгүй бөгөөд эхэлж ачаалагчийн түгжээг тайлсан байхад утсан дээр хадгалсан аливаа өгөгдөл эрсдэлд орж магадгүй. Зарим онцлогийг эдгээр горимд идэвхгүй болгох тул зарим аппликэйшн ажиллахгүй байж магадгүй. Үйлдвэрлэлийн горимд дахин орохын тулд та төхөөрөмжийн эхэлж ачаалагчийг түгжих ёстой. Илүү ихийг уншихын тулд товшино уу."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Та хуудасны хэмжээгээ сэлгэж болох (page-agnostic) горимын 4 КБ горимд байна. Энэ горимд программ хангамжийн халдашгүй байдалд баталгаа өгөх боломжгүй бөгөөд эхэлж ачаалагчийн түгжээг тайлсан байхад утсан дээр хадгалсан аливаа өгөгдөл эрсдэлд орж магадгүй. Зарим онцлогийг эдгээр горимд идэвхгүй болгох тул зарим аппликэйшн ажиллахгүй байж магадгүй. Үйлдвэрлэлийн горимд дахин орохын тулд та төхөөрөмжийн эхэлж ачаалагчийг түгжих ёстой. Энэ нь төхөөрөмжийг үйлдвэрийн тохиргоонд дахин шинэчилж, үйлдвэрлэлийн тохиргоо руу сэргээнэ. Тухайн төхөөрөмжийг Android руу амжилттай ачаалсны дараа Хөгжүүлэгчийн тохиргоонд OEM түгжээг тайлахыг идэвхгүй болгоно уу. Хэрэв төхөөрөмжийг Android руу ачаалж чадаагүй эсвэл энэ нь тогтворгүй байвал <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> дээрээс төхөөрөмжийг хамгийн сүүлийн үеийн үйлдвэрийн зургаар солих эсвэл <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>-г ашиглаад, \'Төхөөрөмжийг арчих\', \'Эхэлж ачаалагчийг түгжих\' болон \'Бүх хуваалтыг хүчээр солих\'-ыг сонгоно уу."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16 КБ хуудасны хэмжээгээ сэлгэж болох (page-agnostic) горимыг ашиглаж байна"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Та хуудасны хэмжээ сэлгэх горимын 16 КБ горимд байна. Энэ горимд программ хангамжийн халдашгүй байдалд баталгаа өгөх боломжгүй бөгөөд эхэлж ачаалагчийн түгжээг тайлсан байхад утсан дээр хадгалсан аливаа өгөгдөл эрсдэлд орж магадгүй. Зарим онцлогийг эдгээр горимд идэвхгүй болгох тул зарим аппликэйшн ажиллахгүй байж магадгүй. Үйлдвэрлэлийн горимд дахин орохын тулд та 4 КБ горим руу буцаж сэлгээд, дараа нь төхөөрөмжийн эхэлж ачаалагчийг түгжих ёстой. Илүү ихийг уншихын тулд товшино уу."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Та хуудасны хэмжээ сэлгэх горимын 16 КБ горимд байна. Энэ горимд программ хангамжийн халдашгүй байдалд баталгаа өгөх боломжгүй бөгөөд эхэлж ачаалагчийн түгжээг тайлсан байхад утсан дээр хадгалсан аливаа өгөгдөл эрсдэлд орж магадгүй. Зарим онцлогийг эдгээр горимд идэвхгүй болгох тул зарим аппликэйшн ажиллахгүй байж магадгүй. Үйлдвэрлэлийн горимд дахин орохын тулд та 4 КБ горим руу буцаж сэлгээд, дараа нь төхөөрөмжийн эхэлж ачаалагчийг түгжих ёстой. Энэ нь төхөөрөмжийг үйлдвэрийн тохиргоонд дахин шинэчилж, үйлдвэрлэлийн тохиргоо руу сэргээнэ. Тухайн төхөөрөмжийг Android руу амжилттай ачаалсны дараа Хөгжүүлэгчийн тохиргоонд OEM түгжээг тайлахыг идэвхгүй болгоно уу. Хэрэв төхөөрөмжийг Android руу ачаалж чадаагүй эсвэл энэ нь тогтворгүй байвал <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> дээрээс төхөөрөмжийг хамгийн сүүлийн үеийн үйлдвэрийн зургаар солих эсвэл <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>-г ашиглаад, \'Төхөөрөмжийг арчих\', \'Эхэлж ачаалагчийг түгжих\', \'Бүх хуваалтыг хүчээр солих\'-ыг сонгоно уу."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 КБ дурын хэмжээтэй хуудасны (page-agnostic) горим"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Цааш унших"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Алдааны мэдээний удирдагч"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Таблетаа холбох үед дэлгэцэн дээр юу харагдахыг сонгоно уу. Дэлгэц амраагч ашиглах үед таны төхөөрөмж илүү их эрчим хүч зарцуулж болзошгүй."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Өөрчлөх"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>-г өөрчлөх"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Чөлөөт хэлбэрийн дэмжлэгийг идэвхжүүлэхийн тулд дахин асаах шаардлагатай."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Хоёрдогч дэлгэц дээр дэлгэцийн горимыг хүчлэхийн тулд дахин асаах шаардлагатай."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Чөлөөт хэлбэрийн уламжлалт цонхны дэмжлэгийг идэвхжүүлэхэд дахин асаах шаардлагатай."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Чөлөөт хэлбэрийн цонхны дэмжлэгийг өөрчлөхөд дахин асаах шаардлагатай."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Хоёрдогч дэлгэц дээр чөлөөт хэлбэрийн цонхыг хүчлэхэд дахин асаах шаардлагатай."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Одоо дахин асаах"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Дараа дахин асаах"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Орчны аудио"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 95cd6b4..12e00c8 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"चेहरा आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"चेहरा, फिंगरप्रिंट आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"चेहरा, फिंगरप्रिंट आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ओळख तपासणी सुरू असल्यामुळे हे आवश्यक आहे"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"पर्याय"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"अॅक्सेसिबिलिटी"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"वास्तविक कीबोर्ड"</string>
- <string name="show_ime" msgid="4334255501724746849">"ऑन-स्क्रीन कीबोर्ड वापरा"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"वास्तविक कीबोर्ड अॅक्टिव्ह असताना त्यास स्क्रीनवर ठेवा"</string>
<string name="bounce_keys" msgid="7419450970351743904">"बाउन्स की"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"कीबोर्ड <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> मिसेमध्ये एकच की वारंवार प्रेस करण्याकडे दुर्लक्ष करतो"</string>
<string name="slow_keys" msgid="2891452895499690837">"स्लो की"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"मोड तयार करा"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"कस्टम"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"व्यत्यय मर्यादित करा"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"व्यत्यय आणू नका सुरू करा"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"अलार्म आणि मीडियाचे आवाज व्यत्यय आणू शकतात"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"शेड्यूल सेट करा"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"शेड्यूल"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> तास <xliff:g id="MINUTES">%2$d</xliff:g> मिनिटे"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"आपोआप सुरू करा"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"शेड्युल"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"काही वेळेला फोन शांत करा"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"व्यत्यय आणू नका नियम सेट करा"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"सूचना उघडा"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"सूचना स्नूझ करण्याची अनुमती द्या"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ॲप आयकनवर सूचना बिंदू"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"नोटिफिकेशन बंडल"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"बबल"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"बबल"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"हे संभाषण बबल करा"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"सर्व"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ॲप्सना ओव्हरराइड करण्याची अनुमती द्या"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"व्यत्यय आणू शकणारी ॲप्स"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"आणखी ॲप्स निवडा"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"केस"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"बॅटरी"</string>
<string name="settings_panel_title" msgid="346363079938069215">"सेटिंग्ज पॅनल"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"डेस्कटॉप मोडची सक्ती करा"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"दुसऱ्या डिस्प्लेवर प्रायोगिक डेस्कटॉप मोडला सक्ती करा"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"फ्रीफॉर्म विंडो सुरू करा"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"फ्रीफॉर्म विंडोसाठी सपोर्ट सुरू करा."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"दुसऱ्या डिस्प्लेवर फ्रीफॉर्म विंडोइंग सुरू करा"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"फक्त दुय्यम डिस्प्लेवर फ्रीफॉर्म विंडो सुरू करा."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"मल्टी विंडोमध्ये आकार बदलू न शकणारे ॲप सुरू करा"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"आकार बदलू न शकणाऱ्या ॲप्सना मल्टी विंडोमध्ये राहण्याची परवानगी देते"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"फोर्स-डार्क ओव्हरराइड करते"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"१६KB डेव्हलपर पर्याय वापरण्यापूर्वी या डिव्हाइसच्या डेटा पार्टिशनचे ext4 मध्ये रूपांतर करणे आवश्यक आहे. या मोडमध्ये सॉफ्टवेअर इंटेग्रिटीची हमी देता येणार नाही आणि बूटलोडर अनलॉक केलेला असताना फोनवर स्टोअर केलेल्या कोणत्याही डेटाला धोका असू शकतो. १६KB पर्याय अॅक्टिव्हेट करण्यासाठी यानंतर आणखी एकदा रीबूट करावे लागेल. तुम्ही या मोडमध्ये असाल, तेव्हा तुम्ही एकदाच रीबूट करून ४KB आणि १६KB मोडमध्ये मागे व पुढे स्विच करू शकता. या मोडमध्ये काही वैशिष्ट्ये बंद केली जातील, त्यामुळे काही अॅप्लिकेशन कदाचित काम करणार नाहीत. डिव्हाइसला उत्पादन मोडवर परत आणण्यासाठी, तुम्हाला ४kB मोडवर परत स्विच करावे लागेल आणि त्यानंतर डिव्हाइसला फॅक्टरी रीसेट करणारा बूटलोडर लॉक करावा लागेल. Android मध्ये डिव्हाइस यशस्वीरीत्या बूट झाल्यानंतर, डेव्हलपर पर्यायांमध्ये OEM अनलॉक करणे हे बंद करा. डिव्हाइस पुसून टाकले जाईल आणि कन्फर्मेशननंतर फाइलसिस्टीम ext4 वर बदलली जाईल. हे पूर्ण झाल्यानंतर, कृपया १६KB पुन्हा सुरू करण्यासाठी परत या."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"सर्व डेटा मिटवा"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"डेटाचे पार्टिशन ext4 वर पुन्हा फॉरमॅट करून पुसून टाकता आले नाही."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"बूटलोडर अनलॉक करणे आवश्यक आहे"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"१६KB डेव्हलपर पर्याय वापरण्यापूर्वी या डिव्हाइसचा बूटलोडर अनलॉक करावा लागेल. या मोडमध्ये सॉफ्टवेअर इंटेग्रिटीची हमी देता येणार नाही आणि बूटलोडर अनलॉक केलेला असताना फोनवर स्टोअर केलेल्या कोणत्याही डेटाला धोका असू शकतो. १६KB मोड अॅक्टिव्हेट केल्यावर सर्व वापरकर्ता डेटा आणि सेटिंग्ज पुसून टाकली जातील. बूटलोडर अनलॉक केल्यावर, १६KB पर्याय अॅक्टिव्हेट करण्यासाठी दोन वेळा रीबूट करावे लागेल. तुम्ही या मोडमध्ये असाल, तेव्हा तुम्ही एकदाच रीबूट करून ४KB आणि १६KB मोडमध्ये मागे व पुढे स्विच करू शकता. या मोडमध्ये काही वैशिष्ट्ये बंद केली जातील, त्यामुळे काही अॅप्लिकेशन कदाचित काम करणार नाहीत. डिव्हाइसला उत्पादन मोडवर परत आणण्यासाठी, तुम्हाला ४KB मोडवर परत स्विच करावे लागेल आणि त्यानंतर डिव्हाइस (फॅक्टरी रीसेट करणारा) OEM/बूटलोडर लॉक करावा लागेल. कृपया बूटलोडर अनलॉक करा आणि पुन्हा प्रयत्न करा. हे कसे करावे यासाठीच्या सूचना तुम्ही <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> येथे पाहू शकता"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"४KB पेज अज्ञात मोड वापरत आहे"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"तुम्ही पेज अज्ञात मोडच्या ४KB मोडमध्ये आहात. या मोडमध्ये सॉफ्टवेअर इंटेग्रिटीची हमी देता येणार नाही आणि बूटलोडर अनलॉक केलेला असताना फोनवर स्टोअर केलेल्या कोणत्याही डेटाला धोका असू शकतो. या मोडमध्ये काही वैशिष्ट्ये बंद केली जातील, त्यामुळे काही अॅप्लिकेशन कदाचित काम करणार नाहीत. उत्पादन मोडमध्ये पुन्हा एंटर करण्यासाठी, तुम्हाला डिव्हाइसचा बूटलोडर लॉक करावा लागेल. आणखी वाचण्यासाठी टॅप करा."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"तुम्ही पेज अज्ञात मोडच्या ४KB मोडमध्ये आहात. या मोडमध्ये सॉफ्टवेअर इंटेग्रिटीची हमी देता येणार नाही आणि बूटलोडर अनलॉक केलेला असताना फोनवर स्टोअर केलेल्या कोणत्याही डेटाला धोका असू शकतो. या मोडमध्ये काही वैशिष्ट्ये बंद केली जातील, त्यामुळे काही अॅप्लिकेशन कदाचित काम करणार नाहीत. उत्पादन मोडमध्ये पुन्हा एंटर करण्यासाठी, तुम्हाला डिव्हाइसचा बूटलोडर लॉक करावा लागेल. यामुळे डिव्हाइस पुन्हा फॅक्टरी रीसेट होईल आणि उत्पादन सेटिंग्जवर रिस्टोअर केले जाईल. Android मध्ये डिव्हाइस यशस्वीरीत्या बूट झाल्यानंतर, डेव्हलपर पर्यायांमध्ये OEM अनलॉक करणे हे बंद करा. डिव्हाइस Android मध्ये बूट होत नसल्यास किंवा ते अस्थिर असल्यास, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> येथील नवीनतम फॅक्टरी इमेजच्या मदतीने डिव्हाइस पुन्हा फ्लॅश करा किंवा <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> वापरा आणि \'डिव्हाइस पुसून टाका\', \'बूटलोडर लॉक करा\' व \'सर्व पार्टिशन सक्तीने फ्लॅश करा\' हे निवडा."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"१६KB पेज अज्ञात मोड वापरत आहे"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"तुम्ही पेज-अॅग्नॉस्टिक मोडच्या १६KB मोडमध्ये आहात. या मोडमध्ये सॉफ्टवेअर इंटेग्रिटीची हमी देता येणार नाही आणि बूटलोडर अनलॉक केलेला असताना फोनवर स्टोअर केलेल्या कोणत्याही डेटाला धोका असू शकतो. या मोडमध्ये काही वैशिष्ट्ये बंद केली जातील, त्यामुळे काही अॅप्लिकेशन कदाचित काम करणार नाहीत. उत्पादन मोडमध्ये पुन्हा एंटर करण्यासाठी, तुम्हाला ४KB मोडवर परत स्विच करावे लागेल आणि त्यानंतर डिव्हाइसचा बूटलोडर लॉक करावा लागेल. आणखी वाचण्यासाठी टॅप करा."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"तुम्ही पेज-अॅग्नॉस्टिक मोडच्या १६KB मोडमध्ये आहात. या मोडमध्ये सॉफ्टवेअर इंटेग्रिटीची हमी देता येणार नाही आणि बूटलोडर अनलॉक केलेला असताना फोनवर स्टोअर केलेल्या कोणत्याही डेटाला धोका असू शकतो. या मोडमध्ये काही वैशिष्ट्ये बंद केली जातील, त्यामुळे काही अॅप्लिकेशन कदाचित काम करणार नाहीत. उत्पादन मोडमध्ये पुन्हा एंटर करण्यासाठी, तुम्हाला ४KB मोडवर परत स्विच करावे लागेल आणि त्यानंतर डिव्हाइसचा बूटलोडर लॉक करावा लागेल. यामुळे डिव्हाइस पुन्हा फॅक्टरी रीसेट होईल आणि उत्पादन सेटिंग्जवर रिस्टोअर केले जाईल. Android मध्ये डिव्हाइस यशस्वीरीत्या बूट झाल्यानंतर, डेव्हलपर पर्यायांमध्ये OEM अनलॉक करणे हे बंद करा. डिव्हाइस Android मध्ये बूट होत नसल्यास किंवा ते अस्थिर असल्यास, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> येथील नवीनतम फॅक्टरी इमेजच्या मदतीने डिव्हाइस पुन्हा फ्लॅश करा किंवा <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> वापरा आणि \'डिव्हाइस पुसून टाका\', \'बूटलोडर लॉक करा\' व \'सर्व पार्टिशन सक्तीने फ्लॅश करा\' हे निवडा."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"१६KB पेज अज्ञात मोड"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"आणखी वाचा"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"बग रिपोर्ट हँडलर"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"तुमचा टॅबलेट डॉक केलेला असतो, तेव्हा तुम्ही तुमच्या स्क्रीनवर काय पाहाल ते निवडा. स्क्रीन सेव्हर वापरला जातो, तेव्हा तुमचे डिव्हाइस आणखी ऊर्जा वापरू शकते."</string>
<string name="customize_button_title" msgid="1110284655990203359">"कस्टमाइझ करा"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> कस्टमाइझ करा"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"फ्रीफॉर्म सपोर्ट सुरू करण्यासाठी, रीबूट करणे आवश्यक आहे."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"दुय्यम डिस्प्लेवर डेस्कटॉप मोडची सक्ती करण्यासाठी, रीबूट करणे आवश्यक आहे."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"लेगसी फ्रीफॉर्म विंडोइंग सपोर्ट सुरू करण्यासाठी रीबूट करणे आवश्यक आहे."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"फ्रीफॉर्म विंडोइंग सपोर्ट बदलण्यासाठी रीबूट करणे आवश्यक आहे."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"दुय्यम डिस्प्लेवर सक्तीने फ्रीफॉर्म विंडोइंग करण्यासाठी रीबूट करणे आवश्यक आहे."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"आता रीबूट करा"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"नंतर रीबूट करा"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"स्पेशियल ऑडिओ"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index b97c3fd..49611a0 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Langkah ini diperlukan kerana Semakan Identiti telah dihidupkan"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Pasang apl"</b>\n"Pasang apl yang mahu anda rahsiakan dalam ruang anda"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Sentiasa ingat"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Apl dihentikan apabila anda mengunci ruang anda"</b>\n"Apabila anda mengunci ruang anda, apl dalam ruang anda akan dihentikan dan anda tidak akan menerima pemberitahuan daripada apl itu"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Ruang privasi tidak sesuai untuk apl yang perlu dijalankan pada latar atau menghantar pemberitahuan genting seperti apl perubatan. Hal ini kerana pemberitahuan dan aktiviti latar dihentikan semasa ruang anda dikunci.\n\nApl dalam ruang privasi anda tidak akan dipaparkan dalam pengurus kebenaran, papan pemuka privasi dan tetapan lain apabila ruang privasi anda dikunci.\n\nRuang privasi anda tidak boleh dialihkan kepada peranti baharu. Anda perlu menyediakan ruang privasi lain jika anda mahu menggunakan ruang privasi itu pada peranti lain.\n\nSesiapa sahaja yang menyambungkan peranti anda kepada komputer atau memasang apl berbahaya pada peranti anda mungkin dapat mengakses ruang privasi anda."</string>
- <string name="private_space_settings_footer_text" msgid="3742468470394835356">"Ruang privasi tidak sesuai untuk apl yang perlu dijalankan pada latar atau menghantar pemberitahuan genting seperti apl perubatan. Hal ini kerana pemberitahuan dan aktiviti latar dihentikan semasa ruang anda dikunci.\n\nApl dalam ruang privasi anda tidak akan dipaparkan dalam pengurus kebenaran, papan pemuka privasi dan tetapan lain apabila ruang privasi dikunci.\n\nRuang privasi anda tidak boleh dipulihkan pada peranti baharu. Anda perlu menyediakan ruang privasi lain jika anda mahu menggunakan ruang privasi pada peranti lain.\n\nSesiapa sahaja yang menyambungkan peranti anda kepada komputer atau memasang apl berbahaya pada peranti anda mungkin dapat mengakses ruang privasi anda."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Ruang privasi tidak sesuai untuk apl yang perlu dijalankan pada latar atau menghantar pemberitahuan genting seperti apl perubatan. Hal ini kerana pemberitahuan dan aktiviti latar dihentikan semasa ruang dikunci.\n\nApl dalam ruang privasi tidak akan dipaparkan dalam pengurus kebenaran, papan pemuka privasi dan tetapan lain apabila ruang privasi dikunci.\n\nRuang privasi tidak boleh dialihkan kepada peranti baharu. Anda perlu menyediakan ruang privasi lain jika anda mahu menggunakan ruang privasi itu pada peranti lain.\n\nSesiapa sahaja yang menyambungkan peranti anda kepada komputer atau memasang apl berbahaya pada peranti anda mungkin dapat mengakses ruang privasi anda."</string>
+ <string name="private_space_settings_footer_text" msgid="3742468470394835356">"Ruang privasi tidak sesuai untuk apl yang perlu dijalankan pada latar atau menghantar pemberitahuan genting seperti apl perubatan. Hal ini kerana pemberitahuan dan aktiviti latar dihentikan semasa ruang dikunci.\n\nApl dalam ruang privasi tidak akan dipaparkan dalam pengurus kebenaran, papan pemuka privasi dan tetapan lain apabila ruang privasi dikunci.\n\nRuang privasi tidak boleh dipulihkan kepada peranti baharu. Anda perlu menyediakan ruang privasi lain jika anda mahu menggunakan ruang privasi pada peranti lain.\n\nSesiapa sahaja yang menyambungkan peranti anda kepada komputer atau memasang apl berbahaya pada peranti anda mungkin dapat mengakses ruang privasi anda."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Ketahui lebih lanjut tentang ruang privasi"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Proses ini akan mengambil sedikit masa"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"Menyediakan ruang privasi…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Pilihan"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Kebolehaksesan"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Papan kekunci fizikal"</string>
- <string name="show_ime" msgid="4334255501724746849">"Gunakan papan kekunci pada skrin"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Pastikan papan kekunci itu pada skrin semasa papan kekunci fizikal aktif"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Kekunci lantun"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Papan kekunci mengabaikan penekanan kekunci yang sama secara berulang dan cepat dalam masa <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Kekunci perlahan"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Buat mod"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Tersuai"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Hadkan gangguan"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Hidupkan Jangan Ganggu"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Bunyi penggera dan media boleh ganggu"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Tetapkan jadual"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Jadual"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> jam, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Hidupkan secara automatik"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Jadual"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Senyapkan telefon pd masa tertentu"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Tetapkan peraturan Jangan Ganggu"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"buka pemberitahuan"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Benarkan penundaan pemberitahuan"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Titik pemberitahuan pada ikon apl"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Himpunan pemberitahuan"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Gelembung"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Gelembung"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Gelembungkan perbualan ini"</string>
@@ -3646,11 +3647,11 @@
<string name="notification_listener_security_warning_summary" msgid="1131986567509818121">"Apl <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> akan dapat membaca semua pemberitahuan, termasuk maklumat peribadi seperti nama kenalan, foto dan teks mesej yang anda terima. Apl ini juga akan dapat menunda atau mengetepikan pemberitahuan atau mengambil tindakan pada butang dalam pemberitahuan, termasuk menjawab panggilan telefon. \n\nHal ini turut mengupayakan apl untuk menghidupkan atau mematikan ciri Jangan Ganggu dan menukar tetapan yang berkaitan."</string>
<string name="nls_warning_prompt" msgid="1486887096703743841">"Apl <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> akan dapat:"</string>
<string name="nls_feature_read_title" msgid="7629713268744220437">"Membaca pemberitahuan anda"</string>
- <string name="nls_feature_read_summary" msgid="1064698238110273593">"Ciri ini dapat membaca pemberitahuan anda, termasuk maklumat peribadi seperti kenalan, mesej dan foto."</string>
+ <string name="nls_feature_read_summary" msgid="1064698238110273593">"Apl ini dapat membaca pemberitahuan, termasuk maklumat peribadi seperti kenalan, mesej dan foto."</string>
<string name="nls_feature_reply_title" msgid="7925455553821362039">"Membalas mesej"</string>
- <string name="nls_feature_reply_summary" msgid="4492543411395565556">"Ciri ini dapat membalas mesej dan mengambil tindakan pada butang dalam pemberitahuan, termasuk menunda atau mengetepikan pemberitahuan dan menjawab panggilan."</string>
+ <string name="nls_feature_reply_summary" msgid="4492543411395565556">"Apl ini dapat membalas mesej dan mengambil tindakan pada butang dalam pemberitahuan, termasuk menunda atau mengetepikan pemberitahuan dan menjawab panggilan."</string>
<string name="nls_feature_settings_title" msgid="8208164329853194414">"Menukar tetapan"</string>
- <string name="nls_feature_settings_summary" msgid="3770028705648985689">"Ciri ini dapat menghidupkan atau mematikan ciri Jangan Ganggu dan menukar tetapan yang berkaitan."</string>
+ <string name="nls_feature_settings_summary" msgid="3770028705648985689">"Apl ini dapat menghidupkan atau mematikan ciri Jangan Ganggu dan menukar tetapan yang berkaitan."</string>
<string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"Jika anda mematikan akses pemberitahuan untuk <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>, akses Jangan Ganggu mungkin turut dimatikan."</string>
<string name="notification_listener_disable_warning_confirm" msgid="841492108402184976">"Matikan"</string>
<string name="notification_listener_disable_warning_cancel" msgid="8802784105045594324">"Batal"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Semua"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Benarkan apl membatalkan Jangan Ganggu"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apl yang boleh ganggu"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pilih lagi apl"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Sarung"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel Tetapan"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Paksa mod desktop"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Paksa mod desktop percubaan pada paparan kedua"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Dayakan tetingkap bentuk bebas"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Dayakan sokongan untuk tetingkap bentuk bebas."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Dayakan tetingkap bentuk bebas pada paparan kedua"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Dayakan tetingkap bentuk bebas hanya pada paparan kedua."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Dayakan tidak boleh diubah saiz dalam berbilang tetingkap"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Benarkan apl tidak boleh diubah saiz dalam berbilang tetingkap"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Batalkan paksa gelap"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Pemetakan data peranti ini perlu ditukar kepada ext4 sebelum menggunakan pilihan pembangun 16KB. Integriti perisian tidak dapat dijamin dalam mod ini dan sebarang data yang disimpan pada telefon semasa pemuat but tidak berkunci mungkin berisiko. Pengaktifan pilihan 16KB akan memerlukan satu lagi but semula selepas ini. Setelah anda berada dalam mod ini, anda boleh bertukar berulang kali antara mod 4KB dengan 16KB menggunakan satu but semula. Sesetengah ciri akan dilumpuhkan dalam mod ini, maka sesetengah aplikasi mungkin tidak berfungsi. Untuk mengembalikan peranti kepada mod pengeluaran, anda perlu menukar kembali kepada mod 4KB dan mengunci pemuat but, yang akan menetapkan semula peranti kepada tetapan kilang. Selepas peranti berjaya dibut kepada Android, lumpuhkan pembukaan kunci OEM dalam Pilihan pembangun. Data peranti akan dihapuskan dan sistem fail akan ditukar kepada ext4 selepas pengesahan. Selepas proses ini selesai, sila kembali untuk mendayakan semula 16KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Padamkan semua data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Gagal memformat semula dan menghapuskan pemetakan data kepada ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Buka Kunci Pemuat But Diperlukan"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Peranti ini perlu membuka kunci pemuat but sebelum menggunakan pilihan pembangun 16KB. Integriti perisian tidak boleh dijamin dalam mod ini dan sebarang data yang disimpan pada telefon semasa pemuat but tidak berkunci mungkin dalam risiko. Semua data dan tetapan pengguna akan dihapuskan semasa pengaktifan mod 16KB. Setelah pemuat but tidak berkunci, pengaktifan pilihan 16KB memerlukan dua but semula. Setelah anda menggunakan mod ini, anda boleh bertukar berulang kali antara mod 4KB dengan 16KB menerusi satu but semula. Sesetengah ciri akan dilumpuhkan dalam mod ini, maka sesetengah aplikasi mungkin tidak berfungsi. Untuk mengembalikan peranti kepada mod pengeluaran, anda perlu menukar semula kepada mod 4KB dan melakukan penguncian OEM/pemuat but (yang akan melakukan tetapan semula kilang) pada peranti. Sila buka kunci pemuat but dan cuba lagi. Anda boleh melihat arahan tentang cara melakukan perkara ini menerusi <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Menggunakan mod halaman agnostik 4KB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Anda menggunakan mod 4KB bagi mod halaman agnostik. Integriti perisian tidak dapat dijamin dalam mod ini, dan sebarang data yang disimpan pada telefon semasa pemuat but tidak berkunci mungkin berisiko. Sesetengah ciri akan dilumpuhkan dalam mod ini, maka sesetengah aplikasi mungkin tidak berfungsi. Untuk memasuki semula mod pengeluaran, anda perlu mengunci pemuat but peranti. Ketik untuk mengetahui lebih lanjut."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Anda menggunakan mod 4KB bagi mod halaman agnostik. Integriti perisian tidak dapat dijamin dalam mod ini dan sebarang data yang disimpan pada telefon semasa pemuat but tidak berkunci mungkin berisiko. Sesetengah ciri akan dilumpuhkan dalam mod ini, maka sesetengah aplikasi mungkin tidak berfungsi. Untuk memasuki semula mod pengeluaran, anda perlu mengunci pemuat but peranti. Tindakan ini akan menetapkan semula peranti kepada tetapan kilang dan mengembalikan peranti kepada tetapan pengeluaran. Selepas peranti berjaya dibut kepada Android, lumpuhkan pembukaan kunci OEM dalam Pilihan pembangun. Jika peranti gagal mengebut kepada Android atau tidak stabil, denyar semula peranti dengan imej kilang terkini daripada <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> atau gunakan <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> dan pilih \'Hapuskan Peranti\', \'Kunci Pemuat But\' dan \'Denyar Paksa semua pemetakan\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Menggunakan mod halaman agnostik 16KB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Anda menggunakan mod 16KB bagi mod halaman agnostik. Integriti perisian tidak boleh dijamin dalam mod ini dan sebarang data yang disimpan pada telefon semasa pemuat but tidak berkunci mungkin dalam risiko. Sesetengah ciri akan dilumpuhkan dalam mod ini, maka sesetengah aplikasi mungkin tidak berfungsi. Untuk memasuki semula mod pengeluaran, anda perlu beralih kembali kepada mod 4KB dan mengunci pemuat but peranti. Ketik untuk membaca lebih lanjut."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Anda menggunakan mod 16KB bagi mod halaman agnostik. Integriti perisian tidak boleh dijamin dalam mod ini dan sebarang data yang disimpan pada telefon semasa pemuat but tidak berkunci mungkin dalam risiko. Sesetengah ciri akan dilumpuhkan dalam mod ini, maka sesetengah aplikasi mungkin tidak berfungsi. Untuk memasuki semula mod pengeluaran, anda perlu beralih kembali kepada mod 4KB dan mengunci pemuat but peranti. Tindakan ini akan menetapkan semula peranti kepada tetapan kilang dan memulihkan peranti pada tetapan pengeluaran. Selepas peranti berjaya dibut masuk dalam Android, lumpuhkan pembukaan kunci OEM dalam Pilihan pembangun. Jika peranti gagal mengebut masuk dalam Android atau tidak stabil, denyar semula peranti dengan imej kilang terkini daripada <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> dan pilih \'Hapuskan Peranti\', \'Kunci Pemuat But\' dan \'Denyar Paksa semua pemetakan\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Mod Halaman agnostik 16KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Baca lebih lanjut"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Pengendali laporan pepijat"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Pilih paparan yang ditampilkan pada skrin apabila tablet didok. Peranti mungkin menggunakan lebih banyak tenaga apabila penyelamat skrin digunakan."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Sesuaikan"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Sesuaikan <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"But semula diperlukan untuk mendayakan sokongan bentuk bebas."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"But semula diperlukan untuk memaksa mod desktop pada paparan sekunder."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"But semula diperlukan untuk mendayakan sokongan tetingkap bentuk bebas yang lama."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"But semula diperlukan untuk menukar sokongan tetingkap bentuk bebas."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"But semula diperlukan untuk memaksa tetingkap bentuk bebas pada paparan kedua."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"But semula sekarang"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"But semula kemudian"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio Ruang"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index c5fbbb9..5b83ef3 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"မျက်နှာနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"မျက်နှာ၊ လက်ဗွေနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"မျက်နှာ၊ လက်ဗွေများနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"‘အထောက်အထား စစ်ဆေးခြင်း’ ကို ဖွင့်ပြီးနောက်ပိုင်း ၎င်းကို လိုအပ်သည်"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"ရွေးစရာများ"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"အများသုံးနိုင်မှု"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"စက်၏ ကီးဘုတ်"</string>
- <string name="show_ime" msgid="4334255501724746849">"မျက်နှာပြင်လက်ကွက်ကို သုံးခြင်း"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"စက်၏ကီးဘုတ် ဖွင့်ထားစဉ်တွင် ၎င်းကို ဖန်သားပြင်ပေါ်တွင် ဆက်ထားပါ"</string>
<string name="bounce_keys" msgid="7419450970351743904">"ပြန်ကန်ကီးများ"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"ကီးဘုတ်သည် <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms အတွင်း ကီးတစ်ခုတည်း အကြိမ်ကြိမ် အမြန်နှိပ်ခြင်းကို လျစ်လျူရှုသည်"</string>
<string name="slow_keys" msgid="2891452895499690837">"အနှေးကီးများ"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"မုဒ် ပြုလုပ်ခြင်း"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"စိတ်ကြိုက်"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"အနှောင့်အယှက်များကို တားဆီးသည်"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'မနှောင့်ယှက်ရ\' ဖွင့်ခြင်း"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"နိုးစက်နှင့် မီဒီယာအသံများ ကြားဖြတ်နိုင်သည်"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"အချိန်ဇယား သတ်မှတ်ပါ"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"အချိန်ဇယားဆွဲရန်"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> နာရီ၊ <xliff:g id="MINUTES">%2$d</xliff:g> မိနစ်"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"အလိုအလျောက်ဖွင့်ရန်"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"အချိန်ဇယား"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"အချို့အချိန်၌ ဖုန်းအသံတိတ်ခြင်း"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"\'မနှောင့်ယှက်ရ\' စည်းမျဉ်းများထည့်ရန်"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"အကြောင်းကြားချက်ကို ဖွင့်ရန်"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"အကြောင်းကြားချက် ဆိုင်းငံ့ခြင်းကို ခွင့်ပြုပါ"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"အက်ပ်သင်္ကေတပေါ်ရှိ အကြောင်းကြားချက် အစက်"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"အတွဲလိုက် အကြောင်းကြားချက်များ"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"ပူဖောင်းကွက်များ"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ပူဖောင်းကွက်များ"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ဤစကားဝိုင်းကို ပူဖောင်းကွက်အဖြစ် ပြရန်"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"အားလုံး"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"အက်ပ်များကို အစားထိုးခွင့်ပြုပါ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ကြားဖြတ်နိုင်သည့် အက်ပ်များ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"နောက်ထပ်အက်ပ်များကို ရွေးပါ"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"နားကြပ်အိတ်"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ဘက်ထရီ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ဆက်တင်များ အကန့်"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"ဒက်စ်တော့ပုံစံ မဖြစ်မနေ ပြောင်းရန်"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ဒုတိယ မျက်နှာပြင်ပြသမှုများတွင် ဒက်စ်တော့ပုံစံ မဖြစ်မနေ စမ်းသပ်ရန်"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"အလွတ်ပုံစံဝင်းဒိုးများ ဖွင့်ခြင်း"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"အလွတ်ပုံစံ ဝင်းဒိုးများအတွက် ပံ့ပိုးမှု ရယူရန်။"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"ဒုတိယဖန်သားပြင်၌ အလွတ်ပုံစံဝင်းဒိုးစနစ် ဖွင့်ရန်"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"ဒုတိယဖန်သားပြင်တွင် အလွတ်ပုံစံ ဝင်းဒိုးများ ဖွင့်နိုင်သည်။"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"အရွယ်မပြင်နိုင်သည်များကို ဝင်းဒိုးများစွာတွင် ဖွင့်ရန်"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"အရွယ်မပြင်နိုင်သည့် အက်ပ်များကို ဝင်းဒိုးများစွာတွင် ဖွင့်ခွင့်ပြုသည်"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"မဖြစ်မနေအမှောင်ချခြင်းကို အစားထိုးရန်"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"၁၆ KB ဆော့ဖ်ဝဲရေးသူအတွက် ရွေးစရာများကို အသုံးမပြုမီ ဤစက်၏ ဒေတာအပိုင်းကို ext4 သို့ ပြောင်းရမည်။ ဤမုဒ်တွင် ဆော့ဖ်ဝဲစစ်မှန်မှုကို အာမ မခံနိုင်သည့်အပြင် စနစ်စတင်မှု ဖွင့်ထားချိန်၌ ဖုန်းတွင် သိုလှောင်ထားသည့် မည်သည့်ဒေတာမဆို ဆုံးရှုံးနိုင်ခြေ ရှိပါသည်။ ၁၆ KB ရွေးစရာကို စဖွင့်ရန်အတွက် ဤသို့ပြောင်းပြီးနောက်တွင် နောက်တစ်ကြိမ်ပြန်လည်စတင်ရန် လိုပါမည်။ ဤမုဒ်သို့ ရောက်သည်နှင့် သင်သည် ၄ KB နှင့် ၁၆ KB မုဒ်အကြား တစ်ကြိမ်ပြန်လည်စတင်ရုံဖြင့် အပြန်အလှန်ပြောင်းနိုင်ပါသည်။ ဤမုဒ်များတွင် အင်္ဂါရပ်အချို့ကို ပိတ်ထားမည်ဖြစ်သဖြင့် အချို့အပလီကေးရှင်းများ အလုပ်မလုပ်နိုင်ပါ။ စက်ကို ထုတ်ကုန်မုဒ်သို့ ပြန်ထားရန် ၄ KB မုဒ်သို့ ပြန်ပြောင်းပြီး စက်ကို စက်ရုံထုတ်အတိုင်း ပြင်ဆင်သတ်မှတ်ပေးသည့် စနစ်စတင်မှုကို လော့ခ်ချရမည်။ စက်ကို Android သို့ စတင်ပြီးနောက် ‘ဆော့ဖ်ဝဲရေးသူအတွက် ရွေးစရာများ’ ရှိ OEM ဖွင့်ခြင်းကို ပိတ်ပါ။ အတည်ပြုပြီးနောက် စက်ကို ရှင်းလင်းပြီး ဖိုင်စနစ်ကို ext4 သို့ ပြောင်းပါမည်။ ဤသို့ပြုလုပ်ပြီးနောက် ၁၆ KB ထပ်ဖွင့်ရန် ပြန်လာပါ။"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"ဒေတာအားလုံး ဖျက်ရန်"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ဒေတာအပိုင်းကို ext4 သို့ ပြန်လည်ဖော်မက်လုပ်ပြီး ရှင်းလင်း၍ မရပါ။"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"စနစ်စတင်မှု ဖွင့်ရန်လိုအပ်သည်"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"၁၆ KB ဆော့ဖ်ဝဲရေးသူအတွက် ရွေးစရာများကို အသုံးမပြုမီ ဤစက်ကို စနစ်စတင်မှု ဖွင့်ရမည်။ ဤမုဒ်တွင် ဆော့ဖ်ဝဲစစ်မှန်မှုကို အာမ မခံနိုင်သည့်အပြင် စနစ်စတင်မှု ဖွင့်ထားချိန်၌ ဖုန်းတွင် သိုလှောင်ထားသည့် မည်သည့်ဒေတာမဆို ဆုံးရှုံးနိုင်ခြေ ရှိပါသည်။ ၁၆ KB မုဒ်ကို စတင်နေသောအခါ အသုံးပြုသူဒေတာနှင့် ဆက်တင်အားလုံးကို ရှင်းလင်းပါမည်။ စနစ်စတင်မှုကို ဖွင့်ပြီးပါက ၁၆ KB ရွေးစရာကို စတင်ရာတွင် နှစ်ကြိမ်ပြန်လည်စတင်ရန်လိုပါမည်။ ဤမုဒ်သို့ ရောက်သည်နှင့် သင်သည် ၄ KB နှင့် ၁၆ KB မုဒ်အကြား တစ်ကြိမ်ပြန်လည်စတင်ရုံဖြင့် အပြန်အလှန်ပြောင်းနိုင်ပါသည်။ ဤမုဒ်များတွင် အင်္ဂါရပ်အချို့ကို ပိတ်ထားမည်ဖြစ်သဖြင့် အချို့အပလီကေးရှင်းများ အလုပ်မလုပ်နိုင်ပါ။ စက်ကို ထုတ်ကုန်မုဒ်သို့ ပြန်ထားရန် ၄ KB မုဒ်သို့ ပြန်ပြောင်းပြီး စက်ကို (စက်ရုံထုတ်အတိုင်း ပြင်ဆင်သတ်မှတ်ပေးသည့်) OEM/စနစ်စတင်မှုကို လော့ခ်ချရမည်။ စနစ်စတင်မှုကို ဖွင့်ပြီး ထပ်စမ်းကြည့်ပါ။ ယင်းသို့ ပြုလုပ်ပုံ ညွှန်ကြားချက်များကို <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a&gt တွင် တွေ့နိုင်ပါသည်၊"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"စာမျက်နှာအမျိုးမျိုးနှင့် အသုံးပြုနိုင်သော ၄ KB မုဒ်ကို အသုံးပြုခြင်း"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"သင်သည် စာမျက်နှာအမျိုးမျိုးနှင့် အသုံးပြုနိုင်သောမုဒ်၏ ၄ KB မုဒ်တွင် ရှိနေပါသည်။ ဤမုဒ်တွင် ဆော့ဖ်ဝဲစစ်မှန်မှုကို အာမ မခံနိုင်သည့်အပြင် စနစ်စတင်မှု ဖွင့်ထားချိန်၌ ဖုန်းတွင် သိုလှောင်ထားသည့် မည်သည့်ဒေတာမဆို ဆုံးရှုံးနိုင်ခြေ ရှိပါသည်။ ဤမုဒ်များတွင် အင်္ဂါရပ်အချို့ကို ပိတ်ထားမည်ဖြစ်သဖြင့် အချို့အပလီကေးရှင်းများ အလုပ်မလုပ်နိုင်ပါ။ ထုတ်ကုန်မုဒ်သို့ ပြန်ဝင်ရန် စက်၏ စနစ်စတင်မှုကို လော့ခ်ချရပါမည်။ နောက်ထပ်ဖတ်ရန် တို့ပါ။"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"သင်သည် စာမျက်နှာအမျိုးမျိုးနှင့် အသုံးပြုနိုင်သောမုဒ်၏ ၄ KB မုဒ်တွင် ရှိနေပါသည်။ ဤမုဒ်တွင် ဆော့ဖ်ဝဲစစ်မှန်မှုကို အာမ မခံနိုင်သည့်အပြင် စနစ်စတင်မှု ဖွင့်ထားချိန်၌ ဖုန်းတွင် သိုလှောင်ထားသည့် မည်သည့်ဒေတာမဆို ဆုံးရှုံးနိုင်ခြေ ရှိပါသည်။ ဤမုဒ်များတွင် အင်္ဂါရပ်အချို့ကို ပိတ်ထားမည်ဖြစ်သဖြင့် အချို့အပလီကေးရှင်းများ အလုပ်မလုပ်နိုင်ပါ။ ထုတ်ကုန်မုဒ်သို့ ပြန်ဝင်ရန် စက်၏ စနစ်စတင်မှုကို လော့ခ်ချရပါမည်။ ၎င်းသည် စက်ကို စက်ရုံထုတ်အတိုင်း ပြင်ဆင်သတ်မှတ်ပေးပြီး ထုတ်ကုန် ဆက်တင်များအတိုင်း ပြန်ပြောင်းပေးပါမည်။ စက်ကို Android သို့ စတင်ပြီးနောက် ‘ဆော့ဖ်ဝဲရေးသူအတွက် ရွေးစရာများ’ ရှိ OEM ဖွင့်ခြင်းကို ပိတ်ပါ။ စက်ကို Android သို့ စတင်၍မရပါက သို့မဟုတ် မတည်ငြိမ်ပါက href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a&gt မှ နောက်ဆုံးပေါ် စက်ရုံထုတ် မူလပုံများဖြင့် စက်ကို ပြန်စပါ သို့မဟုတ် <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a&gt ကို အသုံးပြုကာ ‘စက်ရှင်းလင်းရန်’၊ ‘စနစ်စတင်မှု လော့ခ်ချရန်’ နှင့် ‘အပိုင်းအားလုံး မဖြစ်မနေ ပြန်စရန်’ ကို ရွေးပါ။"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"စာမျက်နှာအမျိုးမျိုးနှင့် အသုံးပြုနိုင်သော ၁၆ KB မုဒ်ကို အသုံးပြုခြင်း"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"သင်သည် စာမျက်နှာအမျိုးမျိုးနှင့် အသုံးပြုနိုင်သောမုဒ်၏ ၁၆ KB မုဒ်တွင် ရှိနေပါသည်။ ဤမုဒ်တွင် ဆော့ဖ်ဝဲစစ်မှန်မှုကို အာမ မခံနိုင်သည့်အပြင် စနစ်စတင်မှု ဖွင့်ထားချိန်၌ ဖုန်းတွင် သိုလှောင်ထားသည့် မည်သည့်ဒေတာမဆို ဆုံးရှုံးနိုင်ခြေ ရှိပါသည်။ ဤမုဒ်များတွင် အင်္ဂါရပ်အချို့ကို ပိတ်ထားမည်ဖြစ်သဖြင့် အချို့အပလီကေးရှင်းများ အလုပ်မလုပ်နိုင်ပါ။ ထုတ်ကုန်မုဒ်သို့ ပြန်ဝင်ရန် ၄ KB mode မုဒ်သို့ ပြန်ပြောင်းပြီး စက်၏ စနစ်စတင်မှုကို လော့ခ်ချရပါမည်။ နောက်ထပ်ဖတ်ရန် တို့ပါ။"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"သင်သည် စာမျက်နှာအမျိုးမျိုးနှင့် အသုံးပြုနိုင်သောမုဒ်၏ ၁၆ KB မုဒ်တွင် ရှိနေပါသည်။ ဤမုဒ်တွင် ဆော့ဖ်ဝဲစစ်မှန်မှုကို အာမ မခံနိုင်သည့်အပြင် စနစ်စတင်မှု ဖွင့်ထားချိန်၌ ဖုန်းတွင် သိုလှောင်ထားသည့် မည်သည့်ဒေတာမဆို ဆုံးရှုံးနိုင်ခြေ ရှိပါသည်။ ဤမုဒ်များတွင် အင်္ဂါရပ်အချို့ကို ပိတ်ထားမည်ဖြစ်သဖြင့် အချို့အပလီကေးရှင်းများ အလုပ်မလုပ်နိုင်ပါ။ ထုတ်ကုန်မုဒ်သို့ ပြန်ဝင်ရန် ၄ KB mode မုဒ်သို့ ပြန်ပြောင်းပြီး စက်၏ စနစ်စတင်မှုကို လော့ခ်ချရပါမည်။ ၎င်းသည် စက်ကို စက်ရုံထုတ်အတိုင်း ပြင်ဆင်သတ်မှတ်ပေးပြီး ထုတ်ကုန် ဆက်တင်များအတိုင်း ပြန်ပြောင်းပေးပါမည်။ စက်ကို Android သို့ စတင်ပြီးနောက် ‘ဆော့ဖ်ဝဲရေးသူအတွက် ရွေးစရာများ’ ရှိ OEM ဖွင့်ခြင်းကို ပိတ်ပါ။ စက်ကို Android သို့ စတင်၍မရပါက သို့မဟုတ် မတည်ငြိမ်ပါက href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a&gt မှ နောက်ဆုံးပေါ် စက်ရုံထုတ် မူလပုံများဖြင့် စက်ကို ပြန်မွမ်းမံပါ သို့မဟုတ် <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a&gt ကို အသုံးပြုကာ ‘စက်ရှင်းလင်းရန်’၊ ‘စနစ်စတင်မှု လော့ခ်ချရန်’ နှင့် ‘အပိုင်းအားလုံး မဖြစ်မနေ မွမ်းမံရန်’ ကို ရွေးပါ။"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"စာမျက်နှာအမျိုးမျိုးနှင့် အသုံးပြုနိုင်သော ၁၆KB မုဒ်"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"နောက်ထပ်ဖတ်ရန်"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"ချွတ်ယွင်းချက်အစီရင်ခံစာ စီမံသူ"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"တက်ဘလက် တပ်ဆင်ထားချိန် စခရင်တွင် မြင်ရမည့်အရာကို ရွေးနိုင်သည်။ စခရင်နားချိန်ပုံသုံးပါက သင်၏စက်က စွမ်းအင်ပိုသုံးနိုင်သည်။"</string>
<string name="customize_button_title" msgid="1110284655990203359">"စိတ်ကြိုက်လုပ်ရန်"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ကို စိတ်ကြိုက်လုပ်ရန်"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"freeform အကူအညီကို ဖွင့်ရန်အတွက် ပြန်လည်စတင်ရန် လိုအပ်သည်။"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"အရန်ဖန်သားပြင်တွင် ဒက်စ်တော့မုဒ်ကို မဖြစ်မနေ အသုံးပြုရန်အတွက် ပြန်လည်စတင်ရန် လိုအပ်သည်။"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"အလွတ်ပုံစံ ဝင်းဒိုးစနစ်ပံ့ပိုးမှု ဖွင့်ရန်အတွက် ပြန်လည်စတင်ရန် လိုအပ်သည်။"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"အလွတ်ပုံစံ ဝင်းဒိုးစနစ်ပံ့ပိုးမှုကို ပြောင်းရန်အတွက် ပြန်လည်စတင်ရန် လိုအပ်သည်။"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"ဒုတိယဖန်သားပြင်၌ အလွတ်ပုံစံ ဝင်းဒိုးစနစ်ကို မဖြစ်မနေ သုံးရန်အတွက် ပြန်လည်စတင်ရန် လိုအပ်သည်။"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ယခု ပြန်လည်စတင်ရန်"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"နောက်မှ ပြန်လည်စတင်ရန်"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ထောင့်စုံအော်ဒီယို"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index e2af18b..6f7897f 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Dette kreves fordi Identity Check er på"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Alternativer"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Tilgjengelighet"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fysisk tastatur"</string>
- <string name="show_ime" msgid="4334255501724746849">"Bruk skjermtastaturet"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Ha det på skjermen når det fysiske tastaturet er aktivt"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Filtertaster"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Tastaturet ignorerer raskt gjentatte trykk på samme tast innenfor <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Hengende taster"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Fortsett likevel"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Avbryt"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Innstillinger for forstørring"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Flytt lupen med 1 finger"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Dra 1 finger for å bevege deg rundt på skjermen."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Flytt forstørringsområdet ved å dra én finger."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Flytt forstørringsområdet ved å dra to fingre."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ikke tilgjengelig ved forstørring av bare en del av skjermen"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Trykk på en knapp for å zoome"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zoom raskt inn på skjermen for å gjøre innhold større"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Slik zoomer du inn:</b><br/> {0,number,integer}. Bruk snarveien for å starte forstørring.<br/> {1,number,integer}. Trykk på skjermen.<br/> {2,number,integer}. Dra to fingre for å bevege deg rundt på skjermen.<br/> {3,number,integer}. Klyp med to fingre for å justere zoomen.<br/> {4,number,integer}. Bruk snarveien for å stoppe forstørring.<br/><br/> <b>Slik zoomer du inn midlertidig:</b><br/> {0,number,integer}. Sørg for at forstørringstype er satt til fullskjerm.<br/> {1,number,integer}. Bruk snarveien for å starte forstørring.<br/> {2,number,integer}. Trykk og hold hvor som helst på skjermen.<br/> {3,number,integer}. Dra en finger for å bevege deg rundt på skjermen.<br/> {4,number,integer}. Løft fingeren for å stoppe forstørring."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Slik zoomer du inn:</b><br/> {0,number,integer}. Bruk snarveien for å starte forstørring.<br/> {1,number,integer}. Trykk på skjermen.<br/> {2,number,integer}. Dra 2 fingre for å bevege deg rundt på skjermen.<br/> {3,number,integer}. Klyp med 2 fingre for å justere zoomen.<br/> {4,number,integer}. Bruk snarveien for å stoppe forstørringen.<br/><br/> Du kan også zoome inn midlertidig med mer."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Slik zoomer du inn:</b><br/> {0,number,integer}. Bruk snarveien for å starte forstørring.<br/> {1,number,integer}. Trykk på skjermen.<br/> {2,number,integer}. Dra 1 eller 2 fingre for å bevege deg rundt på skjermen.<br/> {3,number,integer}. Klyp med 2 fingre for å justere zoomen.<br/> {4,number,integer}. Bruk snarveien for å stoppe forstørringen.<br/><br/> Du kan også zoome inn midlertidig med mer."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Når forstørrelse er slått på, kan du zoome inn på skjermen.\n\n"<b>"For å zoome"</b>", start forstørring og trykk hvor som helst på skjermen.\n"<ul><li>"Dra to eller flere fingre for å rulle"</li>\n<li>"Knip to eller flere fingre for å justere zoomen"</li></ul>\n\n<b>"For å zoome midlertidig"</b>", start forstørring og trykk og hold hvor som helst på skjermen.\n"<ul><li>"Dra for å bevege deg rundt på skjermen"</li>\n<li>"Løft fingeren for å zoome ut"</li></ul>\n\n"Du kan ikke zoome inn på tastaturet eller navigasjonsraden."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Side <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> av <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Snarvei via Tilgjengelighet-knappen"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Opprett en modus"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Egendefinert"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Begrens forstyrrelser"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Slå på Ikke forstyrr"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmer og medielyder kan forstyrre"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Angi en tidsplan"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Tidsplan"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> t, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Slå på automatisk"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Tidsplan"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Demp telefonen til bestemte tider"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Angi Ikke forstyrr-regler"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"åpne varsel"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Tillat slumring av varsler"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Varselprikk på appikoner"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Varselspakker"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bobler"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bobler"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Lag boble for denne samtalen"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alle"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tillat at apper overstyrer"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apper som kan forstyrre"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Velg flere apper"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Etui"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Innstillinger-panel"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Tvungen skrivebordsmodus"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Tvungen eksperimentell skrivebordsmodus på sekundære skjermer"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Slå på vinduer i fritt format"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Slå på støtte for vinduer i fritt format."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Slå på vindusvisning i fritt format på skjerm to"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Slå på vinduer i fritt format bare på sekundær skjerm."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Slå på apper som ikke kan endre størrelse, i flervindusmodus"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Tillater apper som ikke kan endre størrelse, i flervindusmodus"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Overstyr tving mørk"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Datapartisjonen på denne enheten må konverteres til ext4 før du kan bruke utvikleralternativet for 16 kB. I denne modusen kan ikke programvareintegriteten garanteres, og eventuelle data som er lagret på telefonen mens oppstartsinnlasteren er låst opp, kan være utsatt for fare. Hvis du aktiverer alternativet for 16 kB, må du starte enheten på nytt én gang til etter dette. Når du er i denne modusen, kan du bytte mellom modusen for 4 kB og modusen for 16 kB ved bare å starte enheten på nytt én gang. Noen funksjoner deaktiveres i disse modusene, så det er ikke sikkert at alle apper fungerer. For å gå tilbake til produksjonsmodusen på enheten må du bytte tilbake til modusen for 4 kB og så låse oppstartsinnlasteren. Da tilbakestilles enheten til fabrikkstandard. Når enheten har startet i Android, kan du deaktivere fjerning av produsentsperre i utvikleralternativene. Når du bekrefter, blir alle dataene på enheten visket ut, og filsystemet blir byttet til ext4. Når dette er ferdig, kan du komme tilbake for å aktivere 16 kB igjen."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Tøm alle data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Kunne ikke omformatere og viske ut datapartisjonen til ext4"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Opplåsing av oppstartsinnlasteren kreves"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Denne enheten krever at oppstartsinnlasteren er låst opp, før utvikleralternativet for 16 kB kan brukes. I denne modusen kan ikke programvareintegriteten garanteres, og eventuelle data som er lagret på telefonen mens oppstartsinnlasteren er låst opp, kan være utsatt for fare. Alle brukerdata og innstillinger viskes ut når modusen for 16 kB aktiveres. Når oppstartsinnlasteren er låst opp, kreves det to omstarter for å aktivere alternativet for 16 kB. Når du er i denne modusen, kan du bytte mellom modusen for 4 kB og modusen for 16 kB ved bare å starte enheten på nytt én gang. Noen funksjoner deaktiveres i disse modusene, så det er ikke sikkert at alle apper fungerer. For å gå tilbake til produksjonsmodusen på enheten må du bytte tilbake til modusen for 4 kB og så låse enheten via produsenten eller oppstartsinnlasteren (og da tilbakestilles enheten til fabrikkstandard). Lås opp oppstartsinnlasteren, og prøv på nytt. Du finner veiledning om hvordan du gjør dette, på <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Bruker den sideagnostiske modusen for 4 kB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Du er i modusen for 4 kB av den sideagnostiske modusen. I denne modusen kan ikke programvareintegriteten garanteres, og eventuelle data som er lagret på telefonen mens oppstartsinnlasteren er låst opp, kan være utsatt for fare. Noen funksjoner deaktiveres i disse modusene, så det er ikke sikkert at alle apper fungerer. For å gå tilbake til produksjonsmodusen, må du låse oppstartsinnlasteren på enheten. Trykk for å finne ut mer."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Du er i modusen for 4 kB av den sideagnostiske modusen. I denne modusen kan ikke programvareintegriteten garanteres, og eventuelle data som er lagret på telefonen mens oppstartsinnlasteren er låst opp, kan være utsatt for fare. Noen funksjoner deaktiveres i disse modusene, så det er ikke sikkert at alle apper fungerer. For å gå tilbake til produksjonsmodusen, må du låse oppstartsinnlasteren på enheten. Da tilbakestilles enheten til fabrikkstandard, og produksjonsinnstillingene gjenopprettes. Når enheten har startet i Android, kan du deaktivere fjerning av produsentsperre i utvikleralternativene. Hvis enheten ikke starter opp i Android, eller hvis den er ustabil, bør du flashe enheten på nytt med de siste fabrikkavbildningene fra <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> eller bruke <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> og velge «Wipe Device» (visk ut alt på enheten), «Lock Bootloader» (lås oppstartsinnlasteren) og «Force Flash all partitions» (tving gjennom flashing av alle partisjoner)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Bruker den sideagnostiske modusen for 16 kB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Du er i modusen for 16 kB av den sideagnostiske modusen. I denne modusen kan ikke programvareintegriteten garanteres, og eventuelle data som er lagret på telefonen mens oppstartsinnlasteren er låst opp, kan være utsatt for fare. Noen funksjoner deaktiveres i disse modusene, så det er ikke sikkert at alle apper fungerer. For å gå tilbake til produksjonsmodusen må du bytte tilbake til modusen for 4 Kb og låse oppstartsinnlasteren på enheten. Trykk for å finne ut mer."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Du er i modusen for 16 kB av den sideagnostiske modusen. I denne modusen kan ikke programvareintegriteten garanteres, og eventuelle data som er lagret på telefonen mens oppstartsinnlasteren er låst opp, kan være i fare. Noen funksjoner deaktiveres i disse modusene, så det er ikke sikkert at alle apper fungerer. For å gå tilbake til produksjonsmodusen må du bytte tilbake til modusen for 4 Kb og låse oppstartsinnlasteren på enheten. Da tilbakestilles enheten til fabrikkstandard, og produksjonsinnstillingene gjenopprettes. Når enheten har startet i Android, kan du deaktivere fjerning av produsentsperre i utvikleralternativene. Hvis enheten ikke starter opp i Android, eller hvis den er ustabil, bør du flashe enheten på nytt med de siste fabrikkavbildningene fra <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> eller bruke <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> og velge «Wipe Device» (visk ut alt på enheten), «Lock Bootloader» (lås oppstartsinnlasteren) og «Force Flash all partitions» (tving gjennom flashing av alle partisjoner)."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Sideagnostisk modus for 16 kB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Les mer"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Feilrapporthåndtering"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Velg hva du ser på skjermen når nettbrettet er i dokken. Enheten kan bruke mer energi når en skjermsparer brukes."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Tilpass"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Tilpass <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"En omstart kreves for å slå på støtte for fritt format."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"En omstart kreves for å tvinge skrivebordmodus på sekundære skjermer."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"En omstart kreves for å slå på støtte for eldre versjon av vindusvisning i fritt format."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"En omstart kreves for å endre støtte for vindusvisning i fritt format."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"En omstart kreves for å tvinge vindusvisning i fritt format på sekundære skjermer."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Start på nytt nå"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Start på nytt senere"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Romlig lyd"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 10d9253..69331f3 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"अनुहार र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरियो"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"अनुहार, फिंगरप्रिन्ट र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरियो"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"अनुहार, फिंगरप्रिन्टहरू र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरिए"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"पहिचान जाँच्ने सुविधा अन भएकाले यसको आवश्यकता पर्छ"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"विकल्पहरू"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"एक्सेसिबिलिटी सुविधा"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"फिजिकल किबोर्ड"</string>
- <string name="show_ime" msgid="4334255501724746849">"अनस्क्रिन किबोर्ड प्रयोग गर्नुहोस्"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"फिजिकल किबोर्ड सक्रिय हुँदा यसलाई स्क्रिनमा राख्नुहोस्"</string>
<string name="bounce_keys" msgid="7419450970351743904">"बाउन्स की"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"किबोर्डले <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> मिलिसेकेन्डभित्र एउटै कीमा छिटो छिटो दोहोर्याएर थिचिएका खण्डमा बेवास्ता गर्छ"</string>
<string name="slow_keys" msgid="2891452895499690837">"स्लो की"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"मोड बनाउनुहोस्"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"कस्टम"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"अवरोधहरू सीमित पार्नुहोस्"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"बाधा नपुऱ्याउनुहोस् नामक मोडलाई अन गर्नुहोस्"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"अलार्म तथा मिडियाका आवाजहरूले अवरोध गर्न सक्छन्"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"समयतालिका सेट गर्नुहोस्"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"समयतालिका"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> घण्टा, <xliff:g id="MINUTES">%2$d</xliff:g> मिनेट"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"स्वतः अन गर्नुहोस्"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"समयतालिका"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"तोकिएको समयमा फोनलाई मौन अवस्थामा राख्नुहोस्"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"बाधा नपुर्याउनुहोस् नामक मोडका नियमहरू सेट गर्नुहोस्"</string>
@@ -3541,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"सूचना खोल्नुहोस्"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"सूचना स्नुज गर्न दिनुहोस्"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"एपको आइकनमा देखिने नोटिफिकेसन डट"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"बबलहरू"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"बबलहरू"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"यो वार्तालाप बबलमा देखाउनुहोस्"</string>
@@ -3834,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"सबै"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"एपहरूलाई ओभरराइड गर्ने अनुमति दिनुहोस्"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"अफ गर्न सक्ने एपहरू"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"थप एपहरू चयन गर्नुहोस्"</string>
@@ -4858,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"खोल"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ब्याट्री"</string>
<string name="settings_panel_title" msgid="346363079938069215">"सेटिङहरू नामक प्यानल"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"बलपूर्वक डेस्कटप मोड लागू गर्नुहोस्"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"सहायक डिस्प्लेमा प्रयोगात्मक डेस्कटप मोड बलपूर्वक लागू गर्नुहोस्"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"फ्रिफर्म विन्डोहरू अन गर्नुहोस्"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"फ्रिफर्म विन्डोहरू चल्ने बनाउनुहोस्"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"दोस्रो डिस्प्लेमा फ्रिफर्म विन्डोहरू अन गर्नुहोस्"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"दोस्रो डिस्प्लेमा मात्र फ्रिफर्म विन्डोहरू अन गर्नुहोस्"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"एउटै विन्डोमा नअट्ने एपहरू एकभन्दा बढी विन्डोमा खोल्न दिइयोस्"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"विन्डोको आकार मिलाउन नसकिने एपहरू एकभन्दा बढी विन्डोमा खोल्न दिइयोस्"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"\'फोर्स डार्क\' ओभरराइड गर्नुहोस्"</string>
@@ -4927,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"१६ के.बि. विकासकर्ता मोड प्रयोग गर्नुअघि यो डिभाइसको डेटा पार्टिसन रूपान्तरण गरी ext4 बनाउनु पर्ने हुन्छ। यो मोडमा सफ्टवेयरको पूर्णताका बारेमा ग्यारेन्टी गर्न सकिँदैन र बुटलोडर अनलक गरिएका बेला फोनमा भण्डारण गरिएको सबै डेटा जोखिममा पर्न सक्छ। १६ के.बि. विकल्प अन गर्न यसपछि अरू एक पटक रिबुट गर्नु पर्ने हुन्छ। तपाईंले यो मोड प्रयोग गर्न थालेपछि भने तपाईं एक पटक रिबुट गरेकै भरमा ४ के.बि. र १६ के.बि. मोडमा अदलबदल गर्न सक्नुहुन्छ। यी मोडमा केही सुविधाहरू अफ हुने हुनाले केही एपहरू नचल्न सक्छन्। डिभाइसलाई प्रोडक्सन मोडमा फर्काउन तपाईंले ४ के.बि. मोडमा फर्किएर बुटलोडर लक गर्नु पर्ने हुन्छ। यसो गर्दा डिभाइस फ्याक्ट्री रिसेट हुन्छ। डिभाइस Android मा बुट भएपछि विकासकर्ता मोडमा गई OEM अनलक सेटिङ अफ गर्नुहोस्। डिभाइसमा भएको सबै डेटा मेटिने छ र पुष्टि गरेपछि फाइल सिस्टम परिवर्तन भई ext4 हुने छ। यो प्रक्रिया पूरा भएपछि १६ के.बि. अन गर्न कृपया यहाँ फर्किएर आउनुहोस्।"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"सबै डेटा मेटाउनुहोस्"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"रिफर्म्याट गर्न र डेटाको पार्टिसन मेटाएर ext4 बनाउन सकिएन।"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"बुटलोडर अनलक गर्नु पर्ने हुन्छ"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"१६ के.बि. विकासकर्ता मोड प्रयोग गर्नुअघि यो डिभाइसको बुटलोडर अनलक गर्नु पर्ने हुन्छ। यो मोडमा सफ्टवेयरको पूर्णताका बारेमा ग्यारेन्टी गर्न सकिँदैन र बुटलोडर अनलक गरिएका बेला फोनमा भण्डारण गरिएको सबै डेटा जोखिममा पर्न सक्छ। १६ के.बि. मोड अन गर्दा प्रयोगकर्ताका सबै डेटा तथा सेटिङ मेटिने छ। बुटलोडर अनलक भइसकेपछि १६ के.बि. विकल्प एक्टिभेट गर्न दुई पटक रिबुट गर्नु पर्ने हुन्छ। तपाईंले यो मोड प्रयोग गर्न थालेपछि भने तपाईं एक पटक रिबुट गरेकै भरमा ४ के.बि. र १६ के.बि. मोडमा अदलबदल गर्न सक्नुहुन्छ। यी मोडमा केही सुविधाहरू अफ हुने हुनाले केही एपहरू नचल्न सक्छन्। डिभाइसलाई प्रोडक्सन मोडमा फर्काउन तपाईंले ४ के.बि. मोडमा फर्किएर OEM/बुटलोडर फेरि लक गर्नु पर्ने हुन्छ (यसो गर्दा डिभाइस फ्याक्ट्री रिसेट हुन्छ)। कृपया बुटलोडर अनलक गर्नुहोस् र फेरि प्रयास गर्नुहोस्। तपाईं <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> मा गई यसो गर्ने तरिका हेर्न सक्नुहुन्छ"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"४ के.बि. पेज एग्नोस्टिक मोड प्रयोग गरिँदै छ"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"तपाईं पेज एग्नोस्टिक मोडअन्तर्गतको ४ के.बि. मोड प्रयोग गर्दै हुनुहुन्छ। यो मोडमा सफ्टवेयरको पूर्णताका बारेमा ग्यारेन्टी गर्न सकिँदैन र बुटलोडर अनलक गरिएका बेला फोनमा भण्डारण गरिएको सबै डेटा जोखिममा पर्न सक्छ। यी मोडमा केही सुविधाहरू अफ हुने हुनाले केही एपहरू नचल्न सक्छन्। तपाईंले डिभाइसको बुटलोडर लक गरेपछि मात्र तपाईं प्रोडक्सन मोडमा फेरि प्रवेश गर्न सक्नुहुन्छ। यस सम्बन्धमा थप जानकारी पढ्न ट्याप गर्नुहोस्।"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"तपाईं पेज एग्नोस्टिक मोडअन्तर्गतको ४ के.बि. मोड प्रयोग गर्दै हुनुहुन्छ। यो मोडमा सफ्टवेयरको पूर्णताका बारेमा ग्यारेन्टी गर्न सकिँदैन र बुटलोडर अनलक गरिएका बेला फोनमा भण्डारण गरिएको सबै डेटा जोखिममा पर्न सक्छ। यी मोडमा केही सुविधाहरू अफ हुने हुनाले केही एपहरू नचल्न सक्छन्। तपाईंले डिभाइसको बुटलोडर लक गरेपछि मात्र तपाईं प्रोडक्सन मोडमा फेरि प्रवेश गर्न सक्नुहुन्छ। यसो गरेपछि डिभाइस फेरि फ्याक्ट्री रिसेट हुने छ र त्यसका सेटिङ रिस्टोर भई प्रोडक्सन सेटिङ कायम हुने छ। डिभाइस Android मा बुट भएपछि विकासकर्ता मोडमा गई OEM अनलक सेटिङ अफ गर्नुहोस्। डिभाइस Android मा बुट भएन वा डिभाइसको पर्फर्मेन्स अस्थिर भयो भने <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> मा भएको नवीनतम फ्याक्ट्री इमेज प्रयोग गरी डिभाइस रिफ्ल्यास गर्नुहोस् वा <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> प्रयोग गर्नुहोस् र \'डिभाइस मेटाउनुहोस्\', \'बुटलोडर लक गर्नुहोस्\' र \'सबै पार्टिसन बलपूर्वक फ्ल्यास गर्नुहोस्\' चयन गर्नुहोस्।"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"१६ के.बि. पेज एग्नोस्टिक मोड प्रयोग गरिँदै छ"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"तपाईं पेज एग्नोस्टिक मोडअन्तर्गतको १६ के.बि. मोड प्रयोग गर्दै हुनुहुन्छ। यो मोडमा सफ्टवेयरको पूर्णताको ग्यारेन्टी गर्न सकिँदैन र बुटलोडर अनलक गरिएका बेला फोनमा भण्डारण गरिएको सबै डेटा जोखिममा पर्न सक्छ। यी मोडमा केही सुविधाहरू अफ हुने हुनाले केही एपहरू नचल्न सक्छन्। तपाईंले ४ के.बि. मोडमा फर्किएर डिभाइसको बुटलोडर लक गरेपछि मात्र तपाईं प्रोडक्सन मोडमा फेरि प्रवेश गर्न सक्नुहुन्छ। यस सम्बन्धमा थप जानकारी पढ्न ट्याप गर्नुहोस्।"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"तपाईं पेज एग्नोस्टिक मोडअन्तर्गतको १६ के.बि. मोड प्रयोग गर्दै हुनुहुन्छ। यो मोडमा सफ्टवेयरको पूर्णताको ग्यारेन्टी गर्न सकिँदैन र बुटलोडर अनलक गरिएका बेला फोनमा भण्डारण गरिएको सबै डेटा जोखिममा पर्न सक्छ। यी मोडमा केही सुविधाहरू अफ हुने हुनाले केही एपहरू नचल्न सक्छन्। तपाईंले ४ के.बि. मोडमा फर्किएर डिभाइसको बुटलोडर लक गरेपछि मात्र तपाईं प्रोडक्सन मोडमा फेरि प्रवेश गर्न सक्नुहुन्छ। यसो गरेपछि डिभाइस फेरि फ्याक्ट्री रिसेट हुने छ र त्यसका सेटिङ रिस्टोर भई प्रोडक्सन सेटिङ कायम हुने छ। डिभाइस Android मा बुट भएपछि विकासकर्ता मोडमा गई OEM अनलक सेटिङ अफ गर्नुहोस्। डिभाइस Android मा बुट भएन वा डिभाइसको पर्फर्मेन्स अस्थिर भयो भने <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> मा भएको नवीनतम फ्याक्ट्री इमेज प्रयोग गरी डिभाइस रिफ्ल्यास गर्नुहोस् वा <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> प्रयोग गर्नुहोस् र \'डिभाइस मेटाउनुहोस्\', \'बुटलोडर लक गर्नुहोस्\' र \'सबै पार्टिसन बलपूर्वक फ्ल्यास गर्नुहोस्\' चयन गर्नुहोस्।"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"१६ के.बि. पेज एग्नोस्टिक मोड"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"थप पढ्नुहोस्"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"बग रिपोर्ट ह्यान्ड्लर"</string>
@@ -5184,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"तपाईंको ट्याब्लेट डक गरिएका बेला तपाईंको डिभाइसमा देखाइनु पर्ने कुराहरू छान्नुहोस्। स्क्रिन सेभर प्रयोग गरिएका बेला तपाईंको डिभाइसले अरू बेलाको तुलनामा बढी ब्याट्री खपत गर्न सक्छ।"</string>
<string name="customize_button_title" msgid="1110284655990203359">"कस्टमाइज गर्नुहोस्"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> कस्टमाइज गर्नुहोस्"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"फ्रिफर्म मोड अन गर्न रिबुट गर्नु पर्ने हुन्छ।"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"सहायक डिस्प्लेहरूमा डेस्कटप मोड बलपूर्वक लागू गर्न रिबुट गर्नु पर्ने हुन्छ।"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"फ्रिफर्म विन्डो भएको लिगेसी मोड अन गर्न डिभाइस रिबुट गर्नु पर्ने हुन्छ।"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"फ्रिफर्म विन्डो मोड परिवर्तन गर्न डिभाइस रिबुट गर्नु पर्ने हुन्छ।"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"सहायक डिस्प्लेहरूमा फ्रिफर्म विन्डो मोड बलपूर्वक लागू गर्न डिभाइस रिबुट गर्नु पर्ने हुन्छ।"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"अहिले नै रिबुट गर्नुहोस्"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"पछि रिबुट गर्नुहोस्"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"स्पेशियल अडियो"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 72067f7..896bac5 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Dit is nodig omdat identiteitscontrole aanstaat"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Apps installeren"</b>\n"Installeer apps die je privé wilt houden in je gedeelte"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Goed om te weten"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Apps stoppen als je je gedeelte vergrendelt"</b>\n"Als je je gedeelte vergrendelt, worden apps in je gedeelte gestopt en krijg je geen meldingen van de apps"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Privégedeelten zijn niet geschikt voor apps die op de achtergrond moeten worden uitgevoerd of die kritieke meldingen sturen, zoals medische apps. Dit komt omdat meldingen en achtergrondactiviteit worden gestopt als je gedeelte is vergrendeld.\n\nApps in je privégedeelte verschijnen niet in rechtenbeheer, het privacydashboard en andere instellingen als je privégedeelte is vergrendeld.\n\nJe privégedeelte kan niet worden verplaatst naar een nieuw apparaat. Je moet een nieuw privégedeelte instellen als je dit 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égedeelte."</string>
- <string name="private_space_settings_footer_text" msgid="3742468470394835356">"Privégedeelten zijn niet geschikt voor apps die op de achtergrond moeten worden uitgevoerd of die kritieke meldingen sturen, zoals medische apps. Dit komt omdat meldingen en achtergrondactiviteit worden gestopt als je gedeelte is vergrendeld.\n\nApps in je privégedeelte verschijnen niet in rechtenbeheer, het privacydashboard en andere instellingen als het privégedeelte is vergrendeld.\n\nJe privégedeelte kan niet worden hersteld op een nieuw apparaat. Je moet een nieuw gedeelte instellen als je dit 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égedeelte."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Privégedeelten zijn niet geschikt voor apps die op de achtergrond moeten worden uitgevoerd of die kritieke meldingen sturen, zoals medische apps. Dit komt omdat meldingen en achtergrondactiviteit worden gestopt als je gedeelte is vergrendeld.\n\nApps in je privégedeelte verschijnen niet in Rechtenbeheer, het privacydashboard en in andere instellingen als je privégedeelte is vergrendeld.\n\nJe privégedeelte kan niet worden verplaatst naar een nieuw apparaat. Je moet een nieuw privégedeelte instellen als je dit wilt gebruiken op een ander apparaat.\n\nAls iemand je apparaat aan een computer koppelt of schadelijke apps op je apparaat installeert, kan die toegang hebben tot je privégedeelte."</string>
+ <string name="private_space_settings_footer_text" msgid="3742468470394835356">"Privégedeelten zijn niet geschikt voor apps die op de achtergrond moeten worden uitgevoerd of die kritieke meldingen sturen, zoals medische apps. Dit komt omdat meldingen en achtergrondactiviteit worden gestopt als je gedeelte is vergrendeld.\n\nApps in je privégedeelte verschijnen niet in Rechtenbeheer, het privacydashboard en in andere instellingen als het privégedeelte is vergrendeld.\n\nJe privégedeelte kan niet worden hersteld op een nieuw apparaat. Je moet een nieuw gedeelte instellen als je dit wilt gebruiken op een ander apparaat.\n\nAls iemand je apparaat aan een computer koppelt of schadelijke apps op je apparaat installeert, kan die toegang hebben tot je privégedeelte."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Meer informatie over privégedeelte"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Dit duurt even"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"Privégedeelte instellen…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opties"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Toegankelijkheid"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fysiek toetsenbord"</string>
- <string name="show_ime" msgid="4334255501724746849">"Schermtoetsenbord gebruiken"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Toon op het scherm terwijl het fysieke toetsenbord actief is"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Bouncetoetsen"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Het toetsenbord negeert het binnen <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms snel herhaald indrukken van dezelfde toets"</string>
<string name="slow_keys" msgid="2891452895499690837">"Langzame toetsen"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Toch doorgaan"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuleren"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Instellingen voor vergroting"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Verplaats het vergrootglas met 1 vinger"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Sleep met 1 vinger om te navigeren op het scherm."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Verplaats je vergrotingsgebied door met 1 vinger te slepen."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Verplaats je vergrotingsgebied door met 2 vingers te slepen."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Niet beschikbaar als alleen een deel van het scherm wordt vergroot"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Zoomen door te tikken op een knop"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zoom snel in op het scherm om content groter te maken"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Zo zoom je in:</b><br/> {0,number,integer}. Gebruik de snelkoppeling om de vergroting te starten.<br/> {1,number,integer}. Tik op het scherm.<br/> {2,number,integer}. Sleep met 2 vingers om te navigeren op het scherm.<br/> {3,number,integer}. Knijp met 2 vingers om het zoomniveau aan te passen.<br/> {4,number,integer}. Gebruik de snelkoppeling om de vergroting te stoppen.<br/><br/> <b>Zo zoom je tijdelijk in:</b><br/> {0,number,integer}. Zorg dat je vergrotingstype is ingesteld op volledig scherm.<br/> {1,number,integer}. Gebruik de snelkoppeling om de vergroting te starten.<br/> {2,number,integer}. Houd je vinger op het scherm.<br/> {3,number,integer}. Sleep met een vinger om te navigeren op het scherm.<br/> {4,number,integer}. Haal je vinger van het scherm om de vergroting te stoppen."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Zo zoom je in:</b><br/> {0,number,integer}. Gebruik de snelkoppeling om de vergroting te starten.<br/> {1,number,integer}. Tik op het scherm.<br/> {2,number,integer}. Sleep met 2 vingers om te navigeren op het scherm.<br/> {3,number,integer}. Knijp met 2 vingers om het zoomniveau aan te passen.<br/> {4,number,integer}. Gebruik de snelkoppeling om de vergroting te stoppen.<br/><br/> Je kunt ook tijdelijk inzoomen en meer."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Zo zoom je in:</b><br/> {0,number,integer}. Gebruik de snelkoppeling om de vergroting te starten.<br/> {1,number,integer}. Tik op het scherm.<br/> {2,number,integer}. Sleep 1 of 2 vingers om over het scherm te bewegen.<br/> {3,number,integer}. Knijp met 2 vingers om het zoomniveau aan te passen.<br/> {4,number,integer}. Gebruik de snelkoppeling om de vergroting te stoppen.<br/><br/> Je kunt ook tijdelijk inzoomen en meer."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Als vergroting aanstaat, kun je op je scherm het beeld vergroten.\n\n"<b>"Als je wilt inzoomen"</b>", start je de vergroting en tik je waar dan ook op het scherm.\n"<ul><li>"Veeg met 2 of meer vingers om te scrollen."</li>\n<li>"Knijp 2 of meer vingers samen om de zoom aan te passen."</li></ul>\n\n<b>"Als je tijdelijk wilt zoomen"</b>", start je de vergroting, waarna je ergens op het scherm tikt en vasthoudt.\n"<ul><li>"Sleep om een ander deel van het scherm weer te geven."</li>\n<li>"Haal je vinger van het scherm om uit te zoomen."</li></ul>\n\n"Je kunt niet inzoomen op het toetsenbord of de navigatiebalk."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Pagina <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> van <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Snelkoppeling met knop Toegankelijkheid"</string>
@@ -2236,7 +2231,7 @@
<string name="accessibility_button_description" msgid="7669538706120092399">"<b>Aan de slag</b><br/> {0,number,integer}. Ga naar de toegankelijkheidsinstellingen<br/> {1,number,integer}. Kies een functie en tik op de snelkoppeling<br/> {2,number,integer}. Kies de knop waarmee je de functie wilt openen<br/>"</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>
+ <string name="accessibility_button_size_title" msgid="5785110470538960881">"Grootte"</string>
<string name="accessibility_button_fade_title" msgid="8081993897680588829">"Vervagen indien niet in gebruik"</string>
<string name="accessibility_button_fade_summary" msgid="7865950833524973709">"Vervaagt na een paar seconden zodat je het scherm beter ziet"</string>
<string name="accessibility_button_opacity_title" msgid="4727355657530362289">"Transparantie indien niet in gebruik"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Een modus maken"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Aangepast"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Onderbrekingen beperken"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Zet Niet storen aan."</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Wekkers en mediageluiden mogen onderbreken"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Schema instellen"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schema"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> u <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Automatisch aanzetten"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schema"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Telefoongeluid uitzetten op bepaalde tijdstippen"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Regels voor \'Niet storen\' instellen"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"melding openen"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Snoozen van meldingen toestaan"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Meldingsstipje op app-icoon"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Meldingsbundels"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbels"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbels"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Dit gesprek als bubbel tonen"</string>
@@ -3652,7 +3649,7 @@
<string name="nls_feature_read_title" msgid="7629713268744220437">"Je meldingen lezen"</string>
<string name="nls_feature_read_summary" msgid="1064698238110273593">"De app kan je meldingen lezen, waaronder persoonlijke informatie zoals contacten, berichten en foto\'s"</string>
<string name="nls_feature_reply_title" msgid="7925455553821362039">"Berichten beantwoorden"</string>
- <string name="nls_feature_reply_summary" msgid="4492543411395565556">"De app kan berichten beantwoorden, meldingen snoozen of sluiten en gesprekken beantwoorden."</string>
+ <string name="nls_feature_reply_summary" msgid="4492543411395565556">"De app kan berichten beantwoorden en acties uitvoeren voor knoppen in meldingen, waaronder meldingen snoozen of sluiten en gesprekken beantwoorden."</string>
<string name="nls_feature_settings_title" msgid="8208164329853194414">"Instellingen wijzigen"</string>
<string name="nls_feature_settings_summary" msgid="3770028705648985689">"De app kan Niet storen aan- of uitzetten en gerelateerde instellingen wijzigen"</string>
<string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"Als je <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> geen toegang tot meldingen geeft, krijgt Niet storen mogelijk ook geen toegang."</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alles"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Apps toestaan dit te negeren"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps die je mogen storen"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Meer apps selecteren"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batterij"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Instellingenvenster"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Desktopmodus afdwingen"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Dwing experimentele desktopmodus af op secundaire schermen"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Vensters met vrije vorm aanzetten"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Zet ondersteuning voor vensters met vrije vorm aan."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Vensters met vrije vorm aanzetten op 2e scherm"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Zet vensters met vrije vorm alleen aan op het secundaire scherm."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Apps met niet-aanpasbaar formaat aanzetten in meerdere vensters"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Dit staat apps met een niet-aanpasbaar formaat toe in meerdere vensters"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Gedwongen donker maken negeren"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"De gegevenspartitie van dit apparaat moet worden geconverteerd naar ext4 voordat je de 16 KB-ontwikkelaarsoptie kunt gebruiken. In deze modus kan de software-integriteit niet worden gegarandeerd. Ook kunnen alle gegevens die op de telefoon zijn opgeslagen terwijl de bootloader is ontgrendeld gevaar lopen. Als je de 16 KB-optie activeert, moet je het apparaat hierna nog een keer opnieuw opstarten. Zodra je in deze modus zit, kun met één keer opnieuw opstarten wisselen tussen de 4 KB- en 16 KB-modus. Sommige functies worden in deze modi uitgezet, dus sommige apps werken misschien niet. Als je het apparaat wilt terugzetten naar de productiemodus, moet je teruggaan naar de 4 KB-modus en daarna de bootloader vergrendelen. Hierdoor worden de fabrieksinstellingen teruggezet op het apparaat. Nadat het apparaat succesvol is opgestart in Android, zet je OEM-ontgrendeling uit in de Ontwikkelaarsopties. Het apparaat wordt gewist en het bestandssysteem wordt na bevestiging gewijzigd in ext4. Als dit is gebeurd, moet je terugkomen om 16 KB opnieuw aan te zetten."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Alle gegevens wissen"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Kan niet omzetten en de gegevenspartitie niet wissen naar ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Ontgrendeling van bootloader vereist"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"De bootloader moet op dit apparaat ontgrendeld zijn voordat je de 16 KB-ontwikkelaarsoptie kunt gebruiken. In deze modus kan de software-integriteit niet worden gegarandeerd en kunnen alle gegevens die op de telefoon zijn opgeslagen, terwijl de bootloader is ontgrendeld, gevaar lopen. Alle gebruikersgegevens en instellingen worden gewist als de 16 KB-modus wordt geactiveerd. Na het ontgrendelen van de bootloader moet je voor het activeren van de 16 KB-optie het apparaat 2 keer opnieuw opstarten. Zodra je in deze modus zit, kun je met één keer opnieuw opstarten wisselen tussen de 4 KB- en 16 KB-modus. Sommige functies worden in deze modi uitgezet, dus sommige apps werken misschien niet. Als je het apparaat wilt terugzetten naar de productiemodus, moet je teruggaan naar de 4 KB-modus en daarna OEM en de bootloader vergrendelen. Hierdoor worden de fabrieksinstellingen teruggezet op het apparaat. Ontgrendel de bootloader en probeer het opnieuw. Instructies hiervoor vind je op <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Niet-paginagebonden 4 KB-modus gebruiken"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Je zit in de 4 KB-modus van de niet-paginagebonden modus. In deze modus kan de software-integriteit niet worden gegarandeerd. Ook kunnen alle gegevens die op de telefoon zijn opgeslagen terwijl de bootloader is ontgrendeld gevaar lopen. Sommige functies worden in deze modi uitgezet, dus sommige apps werken misschien niet. Als je wilt terugkeren naar de productiemodus, moet je de bootloader van het apparaat vergrendelen. Tik om meer te lezen."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Je zit in de 4 KB-modus van de niet-paginagebonden modus. In deze modus kan de software-integriteit niet worden gegarandeerd. Ook kunnen alle gegevens die op de telefoon zijn opgeslagen terwijl de bootloader is ontgrendeld gevaar lopen. Sommige functies worden in deze modi uitgezet, dus sommige apps werken misschien niet. Als je wilt terugkeren naar de productiemodus, moet je de bootloader van het apparaat vergrendelen. Hierdoor worden de fabrieksinstellingen teruggezet en worden de productie-instellingen hersteld op het apparaat. Nadat het apparaat succesvol is opgestart in Android, zet je OEM-ontgrendeling uit in de Ontwikkelaarsopties. Als het apparaat niet opstart in Android of instabiel is, flash het apparaat dan opnieuw met de nieuwste fabrieksimages van <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> of gebruik <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> en selecteer Apparaat wissen, Bootloader vergrendelen en Alle partities geforceerd flashen."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Niet-paginagebonden modus van 16 KB gebruiken"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Je zit in de 16 KB-modus van de niet-paginagebonden modus. In deze modus kan de software-integriteit niet worden gegarandeerd en kunnen alle gegevens die op de telefoon zijn opgeslagen terwijl de bootloader is ontgrendeld, gevaar lopen. Sommige functies worden in deze modi uitgezet, dus sommige apps werken misschien niet. Als je wilt terugkeren naar de productiemodus, moet je teruggaan naar de 4 KB-modus en daarna de bootloader van het apparaat vergrendelen. Tik om meer te lezen."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Je zit in de 16 KB-modus van de niet-paginagebonden modus. In deze modus kan de software-integriteit niet worden gegarandeerd en kunnen alle gegevens die op de telefoon zijn opgeslagen terwijl de bootloader is ontgrendeld, gevaar lopen. Sommige functies worden in deze modi uitgezet, dus sommige apps werken misschien niet. Als je wilt terugkeren naar de productiemodus, moet je teruggaan naar de 4 KB-modus en daarna de bootloader van het apparaat vergrendelen. Hierdoor worden de fabrieksinstellingen teruggezet en worden de productie-instellingen hersteld op het apparaat. Nadat het apparaat succesvol is opgestart in Android, zet je OEM-ontgrendeling uit via Ontwikkelaarsopties. Als het apparaat niet opstart in Android of instabiel is, flash het apparaat dan opnieuw met de nieuwste fabrieksimages van <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> of gebruik <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> en selecteer Apparaat wissen, Bootloader vergrendelen en Alle partities geforceerd flashen."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Niet-paginagebonden 16 KB-modus"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Meer lezen"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"App voor verwerking bugrapport"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Kies wat je op het scherm wilt zien wanneer de tablet is gedockt. Het apparaat gebruikt misschien meer energie als je een screensaver instelt."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Aanpassen"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> aanpassen"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Je moet opnieuw opstarten om ondersteuning voor vrije vorm aan te zetten."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Je moet opnieuw opstarten om de desktopmodus af te dwingen op secundaire schermen."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Opnieuw opstarten is vereist om ondersteuning voor verouderde vensters met vrije vorm aan te zetten."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Opnieuw opstarten is vereist om ondersteuning voor vensters met vrije vorm te wijzigen."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Opnieuw opstarten is vereist om vensters met vrije vorm aan te zetten op secundaire schermen."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Nu opnieuw opstarten"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Later opnieuw opstarten"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Ruimtelijke audio"</string>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 4b0f343..220f9ff 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -360,7 +360,7 @@
<item msgid="3605616699204153590">"ନାଭିଗେସନ୍ ବାର୍"</item>
</string-array>
<string-array name="accessibility_button_gesture_selector_titles">
- <item msgid="2370918472773154939">"ବଟନ୍"</item>
+ <item msgid="2370918472773154939">"ବଟନ"</item>
<item msgid="6922258575853746220">"ଜେଶ୍ଚର୍"</item>
</string-array>
<string-array name="accessibility_button_size_selector_titles">
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 4dd7b1a..6c1d74b 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ଫେସ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ଫେସ, ଟିପଚିହ୍ନ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ଫେସ, ଟିପଚିହ୍ନ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ପରିଚୟ ଯାଞ୍ଚକରଣ ଚାଲୁ ଥିବା ଯୋଗୁଁ ଏହା ଆବଶ୍ୟକ"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"ବିକଳ୍ପଗୁଡ଼ିକ"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ଆକ୍ସେସିବିଲିଟୀ"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"ଫିଜିକାଲ୍ କୀବୋର୍ଡ"</string>
- <string name="show_ime" msgid="4334255501724746849">"ଅନ୍-ସ୍କ୍ରିନ୍ କୀବୋର୍ଡ ବ୍ୟବହାର କରନ୍ତୁ"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"ଫିଜିକାଲ୍ କୀବୋର୍ଡ ସକ୍ରିୟ ଥିବାବେଳେ ଏହାକୁ ସ୍କ୍ରିନ୍ ଉପରେ ରଖନ୍ତୁ"</string>
<string name="bounce_keys" msgid="7419450970351743904">"ବାଉନ୍ସ କୀଗୁଡ଼ିକ"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"କୀବୋର୍ଡ <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms ମଧ୍ୟରେ ସମାନ କୀ ଶୀଘ୍ର ବାରମ୍ବାର ଦବାଇବାକୁ ଅଣଦେଖା କରେ"</string>
<string name="slow_keys" msgid="2891452895499690837">"ଶ୍ଲୋ କୀଗୁଡ଼ିକ"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ଯେ କୌଣସି ମତେ ଜାରି ରଖନ୍ତୁ"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ବାତିଲ କର"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ମାଗ୍ନିଫିକେସନ ସେଟିଂସ"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 ଆଙ୍ଗୁଠିରେ ମେଗ୍ନିଫାୟାରକୁ ମୁଭ କରନ୍ତୁ"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ସ୍କ୍ରିନରେ ଚାରିଆଡ଼େ ମୁଭ କରିବାକୁ 1 ଆଙ୍ଗୁଠିରେ ଡ୍ରାଗ କରନ୍ତୁ"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ଗୋଟିଏ ଆଙ୍ଗୁଠିକୁ ଟାଣି ମ୍ୟାଗ୍ନିଫିକେସନ ଏରିଆକୁ ମୁଭ କରନ୍ତୁ।"</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ଦୁଇ ଆଙ୍ଗୁଠିକୁ ଟାଣି ମ୍ୟାଗ୍ନିଫିକେସନ ଏରିଆକୁ ମୁଭ କରନ୍ତୁ।"</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"ସ୍କ୍ରିନର କେବଳ କିଛି ଅଂଶ ମେଗ୍ନିଫାଏ କରାଯିବା ସମୟରେ ଉପଲବ୍ଧ ନାହିଁ"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ଜୁମ୍ କରିବା ପାଇଁ ଗୋଟିଏ ବଟନ୍ ଉପରେ ଟାପ୍ କରନ୍ତୁ"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ବିଷୟବସ୍ତୁକୁ ଆହୁରି ବଡ଼ କରିବା ପାଇଁ ସ୍କ୍ରିନରେ ଶୀଘ୍ର ଜୁମ ଇନ କରନ୍ତୁ"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>ଜୁମ ଇନ କରିବାକୁ:</b><br/> {0,number,integer}. ମ୍ୟାଗ୍ନିଫିକେସନ ଆରମ୍ଭ କରିବାକୁ ସର୍ଟକଟ ବ୍ୟବହାର କରନ୍ତୁ<br/> {1,number,integer}. ସ୍କ୍ରିନରେ ଟାପ କରନ୍ତୁ<br/> {2,number,integer}. ସ୍କ୍ରିନର ଚାରିପଟେ ମୁଭ କରିବାକୁ 2ଟି ଆଙ୍ଗୁଠିରେ ଡ୍ରାଗ କରନ୍ତୁ<br/> {3,number,integer}. ଜୁମ ଆଡଜଷ୍ଟ କରିବାକୁ 2ଟି ଆଙ୍ଗୁଠିରେ ପିଞ୍ଚ କରନ୍ତୁ<br/> {4,number,integer}. ମ୍ୟାଗ୍ନିଫିକେସନ ବନ୍ଦ କରିବାକୁ ସର୍ଟକଟ ବ୍ୟବହାର କରନ୍ତୁ<br/><br/> <b>ଅସ୍ଥାୟୀ ଭାବେ ଜୁମ ଇନ କରିବାକୁ:</b><br/> {0,number,integer}. ଆପଣଙ୍କ ମ୍ୟାଗ୍ନିଫିକେସନ ପ୍ରକାର ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନରେ ସେଟ ହୋଇଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ<br/> {1,number,integer}. ମ୍ୟାଗ୍ନିଫିକେସନ ଆରମ୍ଭ କରିବାକୁ ସର୍ଟକଟ ବ୍ୟବହାର କରନ୍ତୁ<br/> {2,number,integer}. ସ୍କ୍ରିନରେ ଯେ କୌଣସି ସ୍ଥାନରେ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ<br/> {3,number,integer}. ସ୍କ୍ରିନର ଚାରିପଟେ ମୁଭ କରିବାକୁ ଆଙ୍ଗୁଠିରେ ଡ୍ରାଗ କରନ୍ତୁ<br/> {4,number,integer}. ମ୍ୟାଗ୍ନିଫିକେସନ ବନ୍ଦ କରିବା ପାଇଁ ଆଙ୍ଗୁଠିକୁ ଉଠାନ୍ତୁ"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>ଜୁମ ଇନ କରିବାକୁ:</b><br/> {0,number,integer}. ମେଗ୍ନିଫିକେସନ ଆରମ୍ଭ କରିବାକୁ ସର୍ଟକଟ ବ୍ୟବହାର କରନ୍ତୁ<br/> {1,number,integer}. ସ୍କ୍ରିନରେ ଟାପ କରନ୍ତୁ<br/> {2,number,integer}. ସ୍କ୍ରିନରେ ଚାରିଆଡ଼େ ମୁଭ କରିବାକୁ 2 ଆଙ୍ଗୁଠିରେ ଡ୍ରାଗ କରନ୍ତୁ<br/> {3,number,integer}. ଜୁମ ଆଡଜଷ୍ଟ କରିବାକୁ 2 ଆଙ୍ଗୁଠିରେ ପିଞ୍ଚ କରନ୍ତୁ<br/> {4,number,integer}. ମେଗ୍ନିଫିକେସନ ବନ୍ଦ କରିବା ପାଇଁ ସର୍ଟକଟକୁ ବ୍ୟବହାର କରନ୍ତୁ<br/><br/> ଆପଣ ଅସ୍ଥାୟୀ ଭାବେ ଏବଂ ଅଧିକ ଜୁମ ଇନ ମଧ୍ୟ କରିପାରିବେ।"</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>ଜୁମ ଇନ କରିବାକୁ:</b><br/> {0,number,integer}. ମେଗ୍ନିଫିକେସନ ଆରମ୍ଭ କରିବାକୁ ସର୍ଟକଟ ବ୍ୟବହାର କରନ୍ତୁ<br/> {1,number,integer}. ସ୍କ୍ରିନରେ ଟାପ କରନ୍ତୁ<br/> {2,number,integer}. ସ୍କ୍ରିନରେ ଚାରିଆଡ଼େ ମୁଭ କରିବାକୁ 1 କିମ୍ବା 2 ଆଙ୍ଗୁଠିରେ ଡ୍ରାଗ କରନ୍ତୁ<br/> {3,number,integer}. ଜୁମ ଆଡଜଷ୍ଟ କରିବାକୁ 2 ଆଙ୍ଗୁଠିରେ ପିଞ୍ଚ କରନ୍ତୁ<br/> {4,number,integer}. ମେଗ୍ନିଫିକେସନ ବନ୍ଦ କରିବା ପାଇଁ ସର୍ଟକଟକୁ ବ୍ୟବହାର କରନ୍ତୁ<br/><br/> ଆପଣ ଅସ୍ଥାୟୀ ଭାବେ ଏବଂ ଅଧିକ ଜୁମ ଇନ ମଧ୍ୟ କରିପାରିବେ।"</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"ମ୍ୟାଗ୍ନିଫିକେସନ୍ ଚାଲୁଥିବା ସମୟରେ, ଆପଣଙ୍କ ସ୍କ୍ରିନ୍ର ଜୁମ୍ ବଢ଼ାଇ ପାରିବେ।\n\n"<b>"ଜୁମ୍ କରିବାକୁ"</b>", ମ୍ୟାଗ୍ନିଫିକେସନ୍ ଆରମ୍ଭ କରନ୍ତୁ, ତା’ପରେ ସ୍କ୍ରିନ୍ର ଯେ କୌଣସି ସ୍ଥାନରେ ଟାପ୍ କରନ୍ତୁ।\n"<ul><li>"ସ୍କ୍ରୋଲ୍ କରିବାକୁ 2 ବା ଅଧିକ ଆଙ୍ଗୁଠିରେ ଟାଣନ୍ତୁ"</li>\n<li>"ଜୁମ୍ ଆଡ୍ଜଷ୍ଟ କରିବାକୁ 2 ବା ଅଧିକ ଆଙ୍ଗୁଠିରେ ପିଞ୍ଚ୍ କରନ୍ତୁ"</li></ul>\n\n<b>"ଅସ୍ଥାୟୀ ଭାବେ ଜୁମ୍ କରିବାକୁ"</b>", ମ୍ୟାଗ୍ନିଫିକେସନ୍ ଆରମ୍ଭ କରନ୍ତୁ, ତା’ପରେ ସ୍କ୍ରିନ୍ର ଯେ କୌଣସି ସ୍ଥାନରେ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ।\n"<ul><li>"ସ୍କ୍ରିନ୍ର ଚାରିପଟରେ ଘୁଞ୍ଚାଇବାକୁ ଟାଣନ୍ତୁ"</li>\n<li>"ଜୁମ୍ କମାଇବାକୁ ଆଙ୍ଗୁଠି ବାହାର କରି ଦିଅନ୍ତୁ"</li></ul>\n\n"ଆପଣ କୀବୋର୍ଡ ବା ନେଭିଗେସନ୍ ବାର୍ ଉପରେ ଜୁମ୍ ବଢ଼ାଇ ପାରିବେ ନାହିଁ।"</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> ମଧ୍ୟରୁ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> ପୃଷ୍ଠା"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ ସର୍ଟକଟ"</string>
@@ -2225,7 +2220,7 @@
<string name="accessibility_shortcut_service_on_lock_screen_title" msgid="3923122834058574478">"ଲକ୍ ସ୍କ୍ରିନରୁ ସର୍ଟକଟ୍"</string>
<string name="accessibility_shortcut_description" msgid="2184693606202133549">"ଲକ୍ ସ୍କ୍ରିନରୁ ଫିଚର୍ ସର୍ଟକଟ୍ ଚାଲୁ କରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ। କିଛି ସେକେଣ୍ଡ ପାଇଁ ଉଭୟ ଭଲ୍ୟୁମ୍ କୀ’କୁ ଧରି ରଖନ୍ତୁ।"</string>
<string name="accessibility_button_title" msgid="5251235485581552614">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ"</string>
- <string name="accessibility_button_gesture_title" msgid="3573456209050374139">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍ ଏବଂ ଜେଶ୍ଚର୍"</string>
+ <string name="accessibility_button_gesture_title" msgid="3573456209050374139">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ ଏବଂ ଜେଶ୍ଚର"</string>
<string name="accessibility_button_intro_text" msgid="80993874471745687">"ଯେ କୌଣସି ସ୍କ୍ରିନରୁ ଆକ୍ସେସିବିଲିଟୀ ଫିଚରଗୁଡ଼ିକୁ ଶୀଘ୍ର ଆକ୍ସେସ କରନ୍ତୁ"</string>
<string name="accessibility_button_about_title" msgid="3581116105084067926">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍ ବିଷୟରେ"</string>
<string name="accessibility_button_gesture_about_title" msgid="8468987303602865536">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍ ଏବଂ ଜେଶ୍ଚର୍ ବିଷୟରେ"</string>
@@ -2234,7 +2229,7 @@
<string name="accessibility_button_summary" msgid="8510939012631455831">"ଆକ୍ସେସିବିଲିଟୀ ଫିଚରକୁ ଶୀଘ୍ର ଆକ୍ସେସ୍ କରନ୍ତୁ"</string>
<string name="accessibility_button_gesture_description" msgid="1141723096904904336">"<b>ଆରମ୍ଭ କରିବାକୁ</b><br/> {0,number,integer}। ଆକ୍ସେସିବିଲିଟୀ ସେଟିଂସକୁ ଯାଆନ୍ତୁ<br/> {1,number,integer}। ଏକ ଫିଚର ଚୟନ କରି ସର୍ଟକଟରେ ଟାପ କରନ୍ତୁ<br/> {2,number,integer}। ଫିଚରକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଆପଣ ଏକ ବଟନ କିମ୍ବା ଜେଶ୍ଚର ବ୍ୟବହାର କରିବାକୁ ଚାହାଁନ୍ତି ନା ନାହିଁ ତାହା ବାଛନ୍ତୁ<br/>"</string>
<string name="accessibility_button_description" msgid="7669538706120092399">"<b>ଆରମ୍ଭ କରିବାକୁ</b><br/> {0,number,integer}। ଆକ୍ସେସିବିଲିଟୀ ସେଟିଂସକୁ ଯାଆନ୍ତୁ<br/> {1,number,integer}। ଏକ ଫିଚର ଚୟନ କରି ସର୍ଟକଟରେ ଟାପ କରନ୍ତୁ<br/> {2,number,integer}। ଫିଚରକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ବଟନ ବାଛନ୍ତୁ<br/>"</string>
- <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"ବଟନ୍ କିମ୍ବା ଜେଶ୍ଚର୍ ବ୍ୟବହାର କରନ୍ତୁ"</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>
<string name="accessibility_button_fade_title" msgid="8081993897680588829">"ବ୍ୟବହାରରେ ନଥିବା ବେଳେ ଫିକା ଦେଖାଯାଏ"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"ଏକ ମୋଡ ତିଆରି କରନ୍ତୁ"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"କଷ୍ଟମ"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"ବ୍ୟାଘାତଗୁଡ଼ିକୁ ସୀମିତ କରନ୍ତୁ"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\"ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\" ଅନ୍ କରନ୍ତୁ"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ଆଲାରାମ୍ ଏବଂ ମିଡିଆ ସାଉଣ୍ଡ ବାଧା ଦେଇପାରେ"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ଏକ ସିଡୁଲ ସେଟ କରନ୍ତୁ"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"ସିଡୁଲ"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ଘଣ୍ଟା, <xliff:g id="MINUTES">%2$d</xliff:g> ମିନିଟ"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"ସ୍ୱତଃ ଚାଲୁ କରନ୍ତୁ"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ସିଡୁଲ୍"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"ନିର୍ଦ୍ଦିଷ୍ଟ ସମୟରେ ଫୋନ୍କୁ ନିରବ କରନ୍ତୁ"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"\"ବିରକ୍ତ କରନ୍ତୁ ନାହିଂ\" ନିୟମ ସେଟ୍ କରନ୍ତୁ"</string>
@@ -3411,7 +3407,7 @@
<string name="zen_mode_settings_category" msgid="3794956668816783447">"ବାଧାଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ ଯାହା ଶବ୍ଦ କରେ"</string>
<string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"ଭିଜୁଆଲ୍ ବାଧା ଅବରୋଧ କରନ୍ତୁ"</string>
<string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ଭିଜୁଆଲ୍ ସଙ୍କେତ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
- <string name="mode_interruption_filter_title" msgid="3343846700214702347">"ଫୋକସ ରଖନ୍ତୁ"</string>
+ <string name="mode_interruption_filter_title" msgid="3343846700214702347">"ଫୋକସ କରନ୍ତୁ"</string>
<string name="mode_device_effects_title" msgid="5857008332618433744">"ଅତିରିକ୍ତ ପଦକ୍ଷେପ"</string>
<string name="mode_display_settings_title" msgid="8132825978346535472">"ଡିସପ୍ଲେ ସେଟିଂସ"</string>
<string name="mode_display_options_section" msgid="5151597748243866532">"ଡିସପ୍ଲେ ବିକଳ୍ପଗୁଡ଼ିକ"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"ବିଜ୍ଞପ୍ତି ଖୋଲନ୍ତୁ"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"ବିଜ୍ଞପ୍ତି ସ୍ନୁଜ କରିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ଆପ ଆଇକନରେ ବିଜ୍ଞପ୍ତି ଡଟ"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"ବବଲ୍ଗୁଡ଼ିକ"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ବବଲ୍ଗୁଡ଼ିକ"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ଏହି ବାର୍ତ୍ତାଳାପକୁ ବବଲ କରନ୍ତୁ"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ସମସ୍ତ"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ନିଷ୍କ୍ରିୟ କରିବାକୁ ଆପ୍ସକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ବାଧା ସୃଷ୍ଟି କରିପାରୁଥିବା ଆପଗୁଡ଼ିକ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ଅଧିକ ଆପ୍ ଚୟନ କରନ୍ତୁ"</string>
@@ -4863,8 +4863,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"କେସ୍"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ବେଟେରୀ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ସେଟିଂସ ପ୍ୟାନେଲ"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"ଫୋର୍ସ ଡେସ୍କଟପ୍ ମୋଡ୍"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ଦ୍ବିତୀୟ ପ୍ରଦର୍ଶନରେ ଫୋର୍ସ ପରୀକ୍ଷାମୂଳକ ମୋଡ୍"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋ ସକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋ ପାଇଁ ସପୋର୍ଟ ସକ୍ଷମ କରନ୍ତୁ।"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"ଦ୍ଵିତୀୟ ଡିସପ୍ଲେରେ ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋ ସକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"କେବଳ ସେକେଣ୍ଡାରୀ ଡିସପ୍ଲେରେ ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋ ସକ୍ଷମ କରନ୍ତୁ।"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ମଲ୍ଟି ୱିଣ୍ଡୋରେ ରିସାଇଜ୍ କରାଯାଇପାରୁନଥିବାକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ରିସାଇଜ୍ କରାଯାଇପାରୁନଥିବା ଆପଗୁଡ଼ିକୁ ମଲ୍ଟି ୱିଣ୍ଡୋରେ ରହିବା ପାଇଁ ଅନୁମତି ଦିଏ"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"ଫୋର୍ସ୍-ଡାର୍କ୍ ଓଭର୍ରାଇଡ୍ କରନ୍ତୁ"</string>
@@ -4932,17 +4934,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16KB ଡେଭଲପର ବିକଳ୍ପ ବ୍ୟବହାର କରିବା ପୂର୍ବରୁ ଏହି ଡିଭାଇସର ଡାଟା ପାର୍ଟିସନ ext4କୁ କନଭର୍ଟ କରାଯିବା ଆବଶ୍ୟକ। ଏହି ମୋଡରେ ସଫ୍ଟୱେର ଇଣ୍ଟିଗ୍ରିଟିକୁ ଗେରେଣ୍ଟି ଦିଆଯାଇପାରିବ ନାହିଁ ଏବଂ ବୁଟଲୋଡର ଅନଲକ ଥିବା ସମୟରେ ଫୋନରେ ଷ୍ଟୋର କରାଯାଇଥିବା ଯେ କୌଣସି ଡାଟା ବିପଦରେ ପଡ଼ିପାରେ। 16KB ବିକଳ୍ପକୁ ସକ୍ରିୟ କରିବା ପାଇଁ ଏହା ପରେ ଆଉ ଏକ ରିବୁଟ ଆବଶ୍ୟକ ହେବ। ଆପଣ ଏହି ମୋଡରେ ଥିଲେ ଆପଣ ଗୋଟିଏ ସିଙ୍ଗଲ ରିବୁଟ ସହିତ 4KB ଏବଂ 16KB ମୋଡ ମଧ୍ୟରେ ଆଗକୁ ଏବଂ ପଛକୁ ସୁଇଚ କରିପାରିବେ। ଏହି ମୋଡଗୁଡ଼ିକରେ କିଛି ଫିଚରକୁ ଅକ୍ଷମ କରିଦିଆଯିବ, ଯାହା ଫଳରେ କିଛି ଆପ୍ଲିକେସନ କାମ କରିନପାରେ। ଡିଭାଇସକୁ ପ୍ରଡକ୍ସନ ମୋଡକୁ ଫେରାଇ ଆଣିବା ପାଇଁ ଆପଣଙ୍କୁ ଡିଭାଇସକୁ ଫେକ୍ଟୋରୀ ରିସେଟ କରୁଥିବା 4KB ମୋଡକୁ ପୁଣି ସୁଇଚ କରି ତା\'ପରେ ବୁଟଲୋଡରକୁ ଲକ କରିବାକୁ ହେବ। Androidରେ ସଫଳତାର ସହ ଡିଭାଇସ ବୁଟ ହେବା ପରେ ଡେଭେଲପର ବିକଳ୍ପରେ OEM ଅନଲକିଂକୁ ଅକ୍ଷମ କରନ୍ତୁ। ଡିଭାଇସକୁ ୱାଇପ କରାଯିବ ଏବଂ ସୁନିଶ୍ଚିତକରଣ ପରେ ଫାଇଲସିଷ୍ଟମକୁ ext4ରେ ପରିବର୍ତ୍ତନ କରାଯିବ। ଏହା ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପରେ ଦୟାକରି ପୁଣି 16KBକୁ ସକ୍ଷମ କରିବାକୁ ଫେରନ୍ତୁ।"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"ସମସ୍ତ ଡାଟା ଇରେଜ କରନ୍ତୁ"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ଡାଟା ପାର୍ଟିସନକୁ ext4ରେ ପୁଣି ଫର୍ମାଟ କରି ୱାଇପ କରିବାରେ ବିଫଳ ହୋଇଛି।"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"ବୁଟଲୋଡର ଅନଲକ ଆବଶ୍ୟକ"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16KB ଡେଭେଲପର ବିକଳ୍ପ ବ୍ୟବହାର କରିବା ପୂର୍ବରୁ ଏହି ଡିଭାଇସକୁ ବୁଟଲୋଡରକୁ ଅନଲକ କରିବା ଆବଶ୍ୟକ। ଏହି ମୋଡରେ ସଫ୍ଟୱେର ଇଣ୍ଟିଗ୍ରିଟିକୁ ଗେରେଣ୍ଟି ଦିଆଯାଇପାରିବ ନାହିଁ ଏବଂ ବୁଟଲୋଡର ଅନଲକ ଥିବା ସମୟରେ ଫୋନରେ ଷ୍ଟୋର କରାଯାଇଥିବା ଯେ କୌଣସି ଡାଟା ବିପଦରେ ପଡ଼ିପାରେ। 16KB ମୋଡ ସକ୍ରିୟ କରିବା ସମୟରେ ସମସ୍ତ ୟୁଜର ଡାଟା ଏବଂ ସେଟିଂସ ୱାଇପ ହୋଇଯିବ। ବୁଟଲୋଡର ଅନଲକ ହେବା ପରେ 16KB ବିକଳ୍ପ ସକ୍ରିୟ କରିବା ପାଇଁ ଦୁଇଟି ରିବୁଟ ଆବଶ୍ୟକ ହେବ। ଆପଣ ଏହି ମୋଡରେ ଥିଲେ ଆପଣ ଗୋଟିଏ ସିଙ୍ଗଲ ରିବୁଟ ସହିତ 4KB ଏବଂ 16KB ମୋଡ ମଧ୍ୟରେ ଆଗକୁ ଏବଂ ପଛକୁ ସୁଇଚ କରିପାରିବେ। ଏହି ମୋଡଗୁଡ଼ିକରେ କିଛି ଫିଚରକୁ ଅକ୍ଷମ କରିଦିଆଯିବ, ଯାହା ଫଳରେ କିଛି ଆପ୍ଲିକେସନ କାମ କରିନପାରେ। ଡିଭାଇସକୁ ପ୍ରଡକ୍ସନ ମୋଡକୁ ଫେରାଇ ଆଣିବା ପାଇଁ ଆପଣଙ୍କୁ ଡିଭାଇସକୁ ପୁଣି 4KB ମୋଡକୁ ସୁଇଚ କରି ତା\'ପରେ OEM/ବୁଟଲୋଡରକୁ ଲକ (ଯାହା ଫେକ୍ଟୋରୀ ରିସେଟ କରେ) କରିବାକୁ ହେବ। ଦୟାକରି ବୁଟଲୋଡରକୁ ଅନଲକ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ। ଏହା କିପରି କରିବେ ସେଥିପାଇଁ ଆପଣ <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>ରେ ନିର୍ଦ୍ଦେଶାବଳୀ ଦେଖିପାରିବେ"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4KB ପୃଷ୍ଠା-ଆଗ୍ନୋଷ୍ଟିକ ମୋଡ ବ୍ୟବହାର କରାଯାଉଛି"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"ଆପଣ ପୃଷ୍ଠା-ଆଗ୍ନୋଷ୍ଟିକ ମୋଡର 4KB ମୋଡରେ ଅଛନ୍ତି। ଏହି ମୋଡରେ ସଫ୍ଟୱେର ଇଣ୍ଟିଗ୍ରିଟିକୁ ଗେରେଣ୍ଟି ଦିଆଯାଇପାରିବ ନାହିଁ ଏବଂ ବୁଟଲୋଡର ଅନଲକ ଥିବା ସମୟରେ ଫୋନରେ ଷ୍ଟୋର କରାଯାଇଥିବା ଯେ କୌଣସି ଡାଟା ବିପଦରେ ପଡ଼ିପାରେ। ଏହି ମୋଡଗୁଡ଼ିକରେ କିଛି ଫିଚରକୁ ଅକ୍ଷମ କରିଦିଆଯିବ, ଯାହା ଫଳରେ କିଛି ଆପ୍ଲିକେସନ କାମ କରିନପାରେ। ପ୍ରଡକ୍ସନ ମୋଡରେ ପୁଣି-ପ୍ରବେଶ କରିବା ପାଇଁ ଆପଣଙ୍କୁ ଡିଭାଇସର ବୁଟଲୋଡରକୁ ଲକ କରିବା ଆବଶ୍ୟକ। ଅଧିକ ପଢ଼ନ୍ତୁରେ ଟାପ କରନ୍ତୁ।"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"ଆପଣ ପୃଷ୍ଠା-ଆଗ୍ନୋଷ୍ଟିକ ମୋଡର 4KB ମୋଡରେ ଅଛନ୍ତି। ଏହି ମୋଡରେ ସଫ୍ଟୱେର ଇଣ୍ଟିଗ୍ରିଟିକୁ ଗେରେଣ୍ଟି ଦିଆଯାଇପାରିବ ନାହିଁ ଏବଂ ବୁଟଲୋଡର ଅନଲକ ଥିବା ସମୟରେ ଫୋନରେ ଷ୍ଟୋର କରାଯାଇଥିବା ଯେ କୌଣସି ଡାଟା ବିପଦରେ ପଡ଼ିପାରେ। ଏହି ମୋଡଗୁଡ଼ିକରେ କିଛି ଫିଚରକୁ ଅକ୍ଷମ କରିଦିଆଯିବ, ଯାହା ଫଳରେ କିଛି ଆପ୍ଲିକେସନ କାମ କରିନପାରେ। ପ୍ରଡକ୍ସନ ମୋଡରେ ପୁଣି-ପ୍ରବେଶ କରିବା ପାଇଁ ଆପଣଙ୍କୁ ଡିଭାଇସର ବୁଟଲୋଡରକୁ ଲକ କରିବା ଆବଶ୍ୟକ। ଏହା ଡିଭାଇସକୁ ପୁଣି ଫେକ୍ଟୋରୀ ରିସେଟ କରି ପ୍ରଡକ୍ସନ ସେଟିଂସରେ ରିଷ୍ଟୋର କରିବ। Androidରେ ସଫଳତାର ସହ ଡିଭାଇସ ବୁଟ ହେବା ପରେ ଡେଭେଲପର ବିକଳ୍ପରେ OEM ଅନଲକିଂକୁ ଅକ୍ଷମ କରନ୍ତୁ। ଯଦି ଡିଭାଇସ Androidରେ ବୁଟ ହେବାରେ ବିଫଳ ହୁଏ କିମ୍ବା ଅସ୍ଥିର ଅଟେ, ତେବେ <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>ରୁ ନବୀନତମ ଫେକ୍ଟୋରୀ ଇମେଜଗୁଡ଼ିକ ସହ ଡିଭାଇସକୁ ପୁଣି-ଫ୍ଲାସ କରି \'ଡିଭାଇସକୁ ୱାଇପ କରନ୍ତୁ\', \'ବୁଟଲୋଡରକୁ ଲକ କରନ୍ତୁ\' ଏବଂ \'ସବୁ ପାର୍ଟିସନକୁ ଫୋର୍ସ ଫ୍ଲାସ କରନ୍ତୁ\'କୁ ଚୟନ କରନ୍ତୁ।"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16KB ପୃଷ୍ଠା-ଆଗ୍ନୋଷ୍ଟିକ ମୋଡ ବ୍ୟବହାର କରାଯାଉଛି"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"ଆପଣ ପୃଷ୍ଠା-ଆଗ୍ନୋଷ୍ଟିକ ମୋଡର 16KB ମୋଡରେ ଅଛନ୍ତି। ଏହି ମୋଡରେ ସଫ୍ଟୱେର ଇଣ୍ଟିଗ୍ରିଟିକୁ ଗେରେଣ୍ଟି ଦିଆଯାଇପାରିବ ନାହିଁ ଏବଂ ବୁଟଲୋଡର ଅନଲକ ଥିବା ସମୟରେ ଫୋନରେ ଷ୍ଟୋର କରାଯାଇଥିବା ଯେ କୌଣସି ଡାଟା ବିପଦରେ ପଡ଼ିପାରେ। ଏହି ମୋଡଗୁଡ଼ିକରେ କିଛି ଫିଚରକୁ ଅକ୍ଷମ କରିଦିଆଯିବ, ଯାହା ଫଳରେ କିଛି ଆପ୍ଲିକେସନ କାମ କରିନପାରେ। ପ୍ରଡକ୍ସନ ମୋଡରେ ପୁଣି-ପ୍ରବେଶ କରିବା ପାଇଁ ଆପଣଙ୍କୁ 4KB ମୋଡକୁ ପୁଣି ସୁଇଚ କରି ତା\'ପରେ ଡିଭାଇସର ବୁଟଲୋଡରକୁ ଲକ କରିବା ଆବଶ୍ୟକ। ଅଧିକ ପଢ଼ିବା ପାଇଁ ଟାପ କରନ୍ତୁ।"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"ଆପଣ ପୃଷ୍ଠା-ଆଗ୍ନୋଷ୍ଟିକ ମୋଡର 16KB ମୋଡରେ ଅଛନ୍ତି। ଏହି ମୋଡରେ ସଫ୍ଟୱେର ଇଣ୍ଟିଗ୍ରିଟିକୁ ଗେରେଣ୍ଟି ଦିଆଯାଇପାରିବ ନାହିଁ ଏବଂ ବୁଟଲୋଡର ଅନଲକ ଥିବା ସମୟରେ ଫୋନରେ ଷ୍ଟୋର କରାଯାଇଥିବା ଯେ କୌଣସି ଡାଟା ବିପଦରେ ପଡ଼ିପାରେ। ଏହି ମୋଡଗୁଡ଼ିକରେ କିଛି ଫିଚରକୁ ଅକ୍ଷମ କରିଦିଆଯିବ, ଯାହା ଫଳରେ କିଛି ଆପ୍ଲିକେସନ କାମ କରିନପାରେ। ପ୍ରଡକ୍ସନ ମୋଡରେ ପୁଣି-ପ୍ରବେଶ କରିବା ପାଇଁ ଆପଣଙ୍କୁ 4KB ମୋଡକୁ ପୁଣି ସୁଇଚ କରି ତା\'ପରେ ଡିଭାଇସର ବୁଟଲୋଡରକୁ ଲକ କରିବା ଆବଶ୍ୟକ। ଏହା ଡିଭାଇସକୁ ପୁଣି ଫେକ୍ଟୋରୀ ରିସେଟ କରି ପ୍ରଡକ୍ସନ ସେଟିଂସରେ ରିଷ୍ଟୋର କରିବ। Androidରେ ସଫଳତାର ସହ ଡିଭାଇସ ବୁଟ ହେବା ପରେ ଡେଭେଲପର ବିକଳ୍ପରେ OEM ଅନଲକିଂକୁ ଅକ୍ଷମ କରନ୍ତୁ। ଯଦି ଡିଭାଇସ Androidରେ ବୁଟ ହେବାରେ ବିଫଳ ହୁଏ କିମ୍ବା ଏହା ଅସ୍ଥିର ଅଟେ, ତେବେ <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>ରୁ ନବୀନତମ ଫେକ୍ଟୋରୀ ଇମେଜଗୁଡ଼ିକ ସହ ଡିଭାଇସକୁ ପୁଣି-ଫ୍ଲାସ କରନ୍ତୁ କିମ୍ବା <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ବ୍ୟବହାର କରନ୍ତୁ ଏବଂ \'ଡିଭାଇସକୁ ୱାଇପ କରନ୍ତୁ\', \'ବୁଟଲୋଡରକୁ ଲକ କରନ୍ତୁ\' ଓ \'ସବୁ ପାର୍ଟିସନକୁ ଫୋର୍ସ ଫ୍ଲାସ କରନ୍ତୁ\'କୁ ଚୟନ କରନ୍ତୁ।"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB ପୃଷ୍ଠା-ଆଗ୍ନୋଷ୍ଟିକ ମୋଡ"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"ଅଧିକ ପଢ଼ନ୍ତୁ"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"ବଗ ରିପୋର୍ଟ ହେଣ୍ଡଲର"</string>
@@ -5189,8 +5188,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"ଆପଣଙ୍କ ଟାବଲେଟକୁ ଡକ କରାଯାଇଥିବା ସମୟରେ ଆପଣ ଆପଣଙ୍କ ସ୍କ୍ରିନରେ କଣ ଦେଖିବେ ତାହା ବାଛନ୍ତୁ। ଏକ ସ୍କ୍ରିନ ସେଭର ବ୍ୟବହାର କରାଯିବା ସମୟରେ ଆପଣଙ୍କ ଡିଭାଇସ ଅଧିକ ଏନର୍ଜି ବ୍ୟବହାର କରିପାରେ।"</string>
<string name="customize_button_title" msgid="1110284655990203359">"କଷ୍ଟମାଇଜ କରନ୍ତୁ"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>କୁ କଷ୍ଟମାଇଜ କରନ୍ତୁ"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ଫ୍ରିଫର୍ମ ସହାୟତାକୁ ସକ୍ଷମ କରିବା ପାଇଁ ଏକ ରିବୁଟ ଆବଶ୍ୟକ।"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ସେକେଣ୍ଡାରୀ ଡିସପ୍ଲେରେ ଡେସ୍କଟପ ମୋଡକୁ ବାଧ୍ୟତାମୂଳକ ଭାବେ ଚାଲୁ କରିବା ପାଇଁ ରିବୁଟ କରିବା ଆବଶ୍ୟକ।"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"ଲିଗାସି ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋଇଂ ସପୋର୍ଟକୁ ସକ୍ଷମ କରିବା ପାଇଁ ଏକ ରିବୁଟ ଆବଶ୍ୟକ।"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋଇଂ ସପୋର୍ଟକୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ଏକ ରିବୁଟ ଆବଶ୍ୟକ।"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"ସେକେଣ୍ଡାରୀ ଡିସପ୍ଲେରେ ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋଇଂକୁ ଫୋର୍ସ କରିବା ପାଇଁ ରିବୁଟ କରିବା ଆବଶ୍ୟକ।"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ବର୍ତ୍ତମାନ ରିବୁଟ କରନ୍ତୁ"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ପରେ ରିବୁଟ କରନ୍ତୁ"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ସ୍ପେସିଆଲ ଅଡିଓ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 0b3275a..e570c75 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ਚਿਹਰੇ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ਚਿਹਰੇ, ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ਚਿਹਰੇ, ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ਪਛਾਣ ਦੀ ਜਾਂਚ ਸੁਵਿਧਾ ਚਾਲੂ ਹੋਣ ਕਰਕੇ ਇਸਦੀ ਲੋੜ ਹੈ"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"ਵਿਕਲਪ"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ਪਹੁੰਚਯੋਗਤਾ"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ"</string>
- <string name="show_ime" msgid="4334255501724746849">"ਆਨ-ਸਕ੍ਰੀਨ ਕੀ-ਬੋਰਡ ਨੂੰ ਵਰਤੋ"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ ਦੌਰਾਨ ਇਸ ਨੂੰ ਸਕ੍ਰੀਨ \'ਤੇ ਬਣਾਈ ਰੱਖੋ"</string>
<string name="bounce_keys" msgid="7419450970351743904">"ਬਾਊਂਸ ਕੁੰਜੀਆਂ"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ਮਿਲੀਸਕਿੰਟਾਂ ਵਿੱਚ ਵਾਰ-ਵਾਰ ਇੱਕੋ ਕੁੰਜੀ ਨੂੰ ਦਬਾਉਂਦੇ ਰਹਿਣ \'ਤੇ ਕੀ-ਬੋਰਡ ਉਸਨੂੰ ਅਣਡਿੱਠ ਕਰ ਦਿੰਦਾ ਹੈ"</string>
<string name="slow_keys" msgid="2891452895499690837">"ਸਲੋ ਕੁੰਜੀਆਂ"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ਫਿਰ ਵੀ ਜਾਰੀ ਰੱਖੋ"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ਰੱਦ ਕਰੋ"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ਵੱਡਦਰਸ਼ੀਕਰਨ ਸੈਟਿੰਗਾਂ"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 ਉਂਗਲ ਨਾਲ ਵੱਡਦਰਸ਼ੀ ਨੂੰ ਇੱਧਰ-ਉੱਧਰ ਲਿਜਾਓ"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ਸਕ੍ਰੀਨ \'ਤੇ ਇੱਧਰ-ਉੱਧਰ ਜਾਣ ਲਈ 1 ਉਂਗਲ ਘਸੀਟੋ"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ਇੱਕ ਉਂਗਲ ਨਾਲ ਘਸੀਟ ਕੇ ਵੱਡਦਰਸ਼ੀਕਰਨ ਖੇਤਰ ਨੂੰ ਹਿਲਾਓ।"</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਘਸੀਟ ਕੇ ਵੱਡਦਰਸ਼ੀਕਰਨ ਖੇਤਰ ਨੂੰ ਹਿਲਾਓ।"</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"ਸਿਰਫ਼ ਸਕ੍ਰੀਨ ਦਾ ਇੱਕ ਹਿੱਸਾ ਵੱਡਦਰਸ਼ੀਕਰਨ ਦੌਰਾਨ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ਜ਼ੂਮ ਕਰਨ ਲਈ ਬਟਨ \'ਤੇ ਟੈਪ ਕਰੋ"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ਸਮੱਗਰੀ ਨੂੰ ਵੱਡਾ ਕਰਨ ਲਈ ਸਕ੍ਰੀਨ \'ਤੇ ਤੇਜ਼ੀ ਨਾਲ ਜ਼ੂਮ ਵਧਾਓ"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>ਜ਼ੂਮ ਵਧਾਉਣ ਲਈ:</b><br/> {0,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋ<br/> {1,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਟੈਪ ਕਰੋ<br/> {2,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਇੱਧਰ-ਉੱਧਰ ਜਾਣ ਲਈ 2 ਉਂਗਲੀਆਂ ਨਾਲ ਘਸੀਟੋ<br/> {3,number,integer}. ਜ਼ੂਮ ਵਿੱਚ ਵਾਧ-ਘਾਟ ਕਰਨ ਲਈ 2 ਉਂਗਲੀਆਂ ਨਾਲ ਚੂੰਢੀ ਭਰੋ<br/> {4,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਰੋਕਣ ਲਈ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋ<br/><br/> <b>ਕੁਝ ਸਮੇਂ ਲਈ ਜ਼ੂਮ ਵਧਾਉਣ ਲਈ:</b><br/> {0,number,integer}. ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡੀ ਵੱਡਦਰਸ਼ੀਕਰਨ ਕਿਸਮ ਪੂਰੀ ਸਕ੍ਰੀਨ \'ਤੇ ਸੈੱਟ ਹੈ<br/> {1,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋ<br/> {2,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਕਿਤੇ ਵੀ ਸਪਰਸ਼ ਕਰ ਕੇ ਰੱਖੋ<br/> {3,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਇੱਧਰ-ਉੱਧਰ ਜਾਣ ਲਈ ਉਂਗਲ ਨਾਲ ਘਸੀਟੋ<br/> {4,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਰੋਕਣ ਲਈ ਉਂਗਲ ਚੁੱਕੋ"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>ਜ਼ੂਮ ਵਧਾਉਣ ਲਈ:</b><br/> {0,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋ<br/> {1,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਟੈਪ ਕਰੋ<br/> {2,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਘੁਮਾਉਣ ਲਈ 2 ਉਂਗਲਾਂ ਨਾਲ ਘਸੀਟੋ<br/> {3,number,integer}. ਜ਼ੂਮ ਵਿੱਚ ਵਾਧ-ਘਾਟ ਕਰਨ ਲਈ 2 ਉਂਗਲਾਂ ਨਾਲ ਚੂੰਢੀ ਭਰੋ<br/> {4,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਰੋਕਣ ਲਈ ਸ਼ਾਰਟਕੱਟ ਦੀ ਵਰਤੋਂ ਕਰੋ<br/><br/> ਤੁਸੀਂ ਕੁਝ ਸਮੇਂ ਲਈ ਜ਼ੂਮ ਵਧਾ ਅਤੇ ਹੋਰ ਵੀ ਬਹੁਤ ਕੁਝ ਕਰ ਸਕਦੇ ਹੋ।"</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>ਜ਼ੂਮ ਵਧਾਉਣ ਲਈ:</b><br/> {0,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋ<br/> {1,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਟੈਪ ਕਰੋ<br/> {2,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਘੁਮਾਉਣ ਲਈ 1 ਜਾਂ 2 ਉਂਗਲਾਂ ਨਾਲ ਘਸੀਟੋ<br/> {3,number,integer}. ਜ਼ੂਮ ਵਿੱਚ ਵਾਧ-ਘਾਟ ਕਰਨ ਲਈ 2 ਉਂਗਲਾਂ ਨਾਲ ਚੂੰਢੀ ਭਰੋ<br/> {4,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਰੋਕਣ ਲਈ ਸ਼ਾਰਟਕੱਟ ਦੀ ਵਰਤੋਂ ਕਰੋ<br/><br/> ਤੁਸੀਂ ਕੁਝ ਸਮੇਂ ਲਈ ਜ਼ੂਮ ਵਧਾ ਅਤੇ ਹੋਰ ਵੀ ਬਹੁਤ ਕੁਝ ਕਰ ਸਕਦੇ ਹੋ।"</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"ਜਦੋਂ ਵੱਡਦਰਸ਼ੀਕਰਨ ਚਾਲੂ ਹੋਵੇ, ਤੁਸੀਂ ਸਕ੍ਰੀਨ \'ਤੇ ਜ਼ੂਮ ਵਧਾ ਸਕਦੇ ਹੋ।\n\n"<b>"ਜ਼ੂਮ ਕਰਨ ਲਈ"</b>", ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰੋ, ਫਿਰ ਸਕ੍ਰੀਨ \'ਤੇ ਕਿਤੇ ਵੀ ਟੈਪ ਕਰੋ।\n"<ul><li>"ਸਕ੍ਰੋਲ ਕਰਨ ਲਈ 2 ਜਾਂ ਜ਼ਿਆਦਾ ਉਂਗਲਾਂ ਘਸੀਟੋ"</li>\n<li>" ਜ਼ੂਮ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ 2 ਜਾਂ ਜ਼ਿਆਦਾ ਉਂਗਲਾਂ ਨਾਲ ਚੂੰਢੀ ਭਰੋ"</li></ul>\n\n<b>"ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਜ਼ੂਮ ਕਰਨ ਲਈ"</b>", ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰੋ, ਫਿਰ ਸਕ੍ਰੀਨ \'ਤੇ ਕੀਤੇ ਵੀ ਸਪਰਸ਼ ਕਰਕੇ ਰੱਖੋ।\n"<ul><li>"ਸਕ੍ਰੀਨ \'ਤੇ ਆਲੇ-ਦੁਆਲੇ ਜਾਣ ਲਈ ਘਸੀਟੋ"</li>\n<li>"ਜ਼ੂਮ ਘਟਾਉਣ ਲਈ ਉਂਗਲ ਚੁੱਕੋ"</li></ul>\n\n"ਤੁਸੀਂ ਕੀ-ਬੋਰਡ ਜਾਂ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ ਪੱਟੀ \'ਤੇ ਜ਼ੂਮ ਵਧਾ ਨਹੀਂ ਸਕਦੇ।"</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> ਵਿੱਚੋਂ ਪੰਨਾ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ ਦਾ ਸ਼ਾਰਟਕੱਟ"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"ਕੋਈ ਮੋਡ ਬਣਾਓ"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ਵਿਉਂਤਬੱਧ"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"ਰੁਕਾਵਟਾਂ ਸੀਮਤ ਕਰੋ"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ਅਲਾਰਮ ਅਤੇ ਮੀਡੀਆ ਧੁਨੀਆਂ ਵਿਘਨ ਪਾ ਸਕਦੀਆਂ ਹਨ"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ਕੋਈ ਸਮਾਂ-ਸੂਚੀ ਸੈੱਟ ਕਰੋ"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"ਸਮਾਂ-ਸੂਚੀ"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ਘੰ., <xliff:g id="MINUTES">%2$d</xliff:g> ਮਿੰ."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਚਾਲੂ ਕਰੋ"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ਸਮਾਂ-ਸੂਚੀ"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"ਕੁਝ ਖਾਸ ਸਮਿਆਂ \'ਤੇ ਫ਼ੋਨ ਸ਼ਾਂਤ ਰੱਖੋ"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"\'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਦੇ ਨਿਯਮ ਸੈੱਟ ਕਰੋ"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"ਸੂਚਨਾ ਖੋਲ੍ਹੋ"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"ਸੂਚਨਾਵਾਂ ਨੂੰ ਸਨੂਜ਼ ਕਰਨ ਦਿਓ"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ਐਪ ਪ੍ਰਤੀਕ \'ਤੇ ਸੂਚਨਾ ਬਿੰਦੂ"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"ਬਬਲ"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ਬਬਲ"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ਇਸ ਗੱਲਬਾਤ ਨੂੰ ਬਬਲ ਵਜੋਂ ਦਿਖਾਓ"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ਸਭ"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ਐਪਾਂ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਦਿਓ"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ਐਪਾਂ ਜੋ ਵਿਘਨ ਪਾ ਸਕਦੀਆਂ ਹਨ"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ਹੋਰ ਐਪਾਂ ਚੁਣੋ"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"ਕੇਸ"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ਬੈਟਰੀ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ਸੈਟਿੰਗਾਂ ਪੈਨਲ"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"ਡੈਸਕਟਾਪ ਮੋਡ ਜ਼ਬਰਦਸਤੀ ਲਾਗੂ ਕਰੋ"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ਸੈਕੰਡਰੀ ਡਿਸਪਲੇ \'ਤੇ ਪ੍ਰਯੋਗਮਈ ਡੈਸਕਟਾਪ ਮੋਡ ਜ਼ਬਰਦਸਤੀ ਲਾਗੂ ਕਰੋ"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"ਫ੍ਰੀਫਾਰਮ ਵਿੰਡੋਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"ਫ੍ਰੀਫਾਰਮ ਵਿੰਡੋਆਂ ਲਈ ਸਹਾਇਤਾ ਚਾਲੂ ਕਰੋ।"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"ਦੂਜੀ ਡਿਸਪਲੇ \'ਤੇ ਫ੍ਰੀਫਾਰਮ ਵਿੰਡੋ ਚਾਲੂ ਕਰੋ"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"ਸਿਰਫ਼ ਸੈਕੰਡਰੀ ਡਿਸਪਲੇ \'ਤੇ ਫ੍ਰੀਫਾਰਮ ਵਿੰਡੋ ਚਾਲੂ ਕਰੋ"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ਮਲਟੀ-ਵਿੰਡੋ ਵਿੱਚ ਆਕਾਰ ਨਾ-ਬਦਲਣਯੋਗ ਬਣਾਉਣ ਦੀ ਸੁਵਿਧਾ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ਮਲਟੀ-ਵਿੰਡੋ ਵਿੱਚ ਆਕਾਰ ਨਾ ਬਦਲਣਯੋਗ ਬਣਾਉਣ ਦੀ ਸੁਵਿਧਾ ਵਾਲੀਆਂ ਐਪਾਂ ਨੂੰ ਆਗਿਆ ਦਿੰਦੀ ਹੈ"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"ਜ਼ਬਰਦਸਤੀ ਗੂੜ੍ਹਾ ਮੋਡ ਓਵਰਰਾਈਡ ਕਰੋ"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16KB ਵਿਕਾਸਕਾਰ ਵਿਕਲਪ ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ, ਇਸ ਡੀਵਾਈਸ ਦੇ ਡਾਟੇ ਦੇ ਹਿੱਸੇ ਨੂੰ ext4 ਫਾਰਮੈਟ ਵਿੱਚ ਬਦਲਣ ਦੀ ਲੋੜ ਹੈ। ਇਸ ਮੋਡ ਵਿੱਚ ਸਾਫ਼ਟਵੇਅਰ ਅਖੰਡਤਾ ਦੀ ਗਰੰਟੀ ਨਹੀਂ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਅਤੇ ਬੂਟਲੋਡਰ ਦੇ ਅਣਲਾਕ ਰਹਿਣ ਦੌਰਾਨ ਫ਼ੋਨ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਡਾਟਾ ਖਤਰੇ ਵਿੱਚ ਰਹਿ ਸਕਦਾ ਹੈ। ਇਸ ਤੋਂ ਬਾਅਦ, 16KB ਵਿਕਲਪ ਦੀ ਕਿਰਿਆਸ਼ੀਲਤਾ ਲਈ ਇੱਕ ਵਾਰ ਹੋਰ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ। ਇਸ ਮੋਡ ਵਿੱਚ ਆਉਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਡੀਵਾਈਸ ਨੂੰ ਇੱਕ ਵਾਰ ਰੀਬੂਟ ਕਰ ਕੇ 4KB ਅਤੇ 16KB ਮੋਡ ਵਿਚਕਾਰ ਸਵਿੱਚ ਕਰ ਸਕਦੇ ਹੋ। ਇਨ੍ਹਾਂ ਮੋਡਾਂ ਵਿੱਚ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬੰਦ ਹੋ ਜਾਣਗੀਆਂ, ਇਸ ਲਈ ਸ਼ਾਇਦ ਕੁਝ ਐਪਲੀਕੇਸ਼ਨਾਂ ਕੰਮ ਨਾ ਕਰਨ। ਡੀਵਾਈਸ ਨੂੰ ਪ੍ਰੋਡਕਸ਼ਨ ਮੋਡ \'ਤੇ ਵਾਪਸ ਲਿਜਾਉਣ ਲਈ, ਤੁਹਾਨੂੰ 4KB ਮੋਡ \'ਤੇ ਵਾਪਸ ਸਵਿੱਚ ਕਰ ਕੇ ਬੂਟਲੋਡਰ ਨੂੰ ਲਾਕ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ, ਜਿਸ ਨਾਲ ਡੀਵਾਈਸ ਫੈਕਟਰੀ ਰੀਸੈੱਟ ਹੋ ਜਾਵੇਗਾ। ਡੀਵਾਈਸ ਦੇ Android ਵਿੱਚ ਸਫਲਤਾਪੂਰਵਕ ਬੂਟ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਵਿਕਾਸਕਾਰ ਵਿਕਲਪ ਵਿੱਚ OEM ਅਣਲਾਕ ਨੂੰ ਬੰਦ ਕਰੋ। ਡੀਵਾਈਸ ਸਾਫ਼ ਹੋ ਜਾਵੇਗਾ ਅਤੇ ਤਸਦੀਕ ਤੋਂ ਬਾਅਦ ਫ਼ਾਈਲਸਿਸਟਮ ext4 ਦੇ ਫਾਰਮੈਟ ਵਿੱਚ ਬਦਲ ਜਾਵੇਗਾ। ਇਸਦੇ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਕਿਰਪਾ ਕਰਕੇ 16KB ਮੋਡ ਨੂੰ ਦੁਬਾਰਾ ਚਾਲੂ ਕਰਨ ਲਈ ਵਾਪਸ ਆਓ।"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ਡਾਟੇ ਦੇ ਹਿੱਸੇ ਨੂੰ ext4 ਵਿੱਚ ਮੁੜ-ਫਾਰਮੈਟ ਕਰਨਾ ਅਤੇ ਸਾਫ਼ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ।"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"ਬੂਟਲੋਡਰ ਅਣਲਾਕ ਲੋੜੀਂਦਾ ਹੈ"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16KB ਵਿਕਾਸਕਾਰ ਵਿਕਲਪ ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ, ਇਸ ਡੀਵਾਈਸ ਲਈ ਬੂਟਲੋਡਰ ਅਣਲਾਕ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਮੋਡ ਵਿੱਚ ਸਾਫ਼ਟਵੇਅਰ ਅਖੰਡਤਾ ਦੀ ਗਰੰਟੀ ਨਹੀਂ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਅਤੇ ਬੂਟਲੋਡਰ ਦੇ ਅਣਲਾਕ ਰਹਿਣ ਦੌਰਾਨ ਫ਼ੋਨ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਡਾਟਾ ਖਤਰੇ ਵਿੱਚ ਰਹਿ ਸਕਦਾ ਹੈ। 16KB ਮੋਡ ਦੇ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ \'ਤੇ, ਸਾਰਾ ਵਰਤੋਂਕਾਰ ਡਾਟਾ ਅਤੇ ਸੈਟਿੰਗਾਂ ਸਾਫ਼ ਹੋ ਜਾਣਗੀਆਂ। ਬੂਟਲੋਡਰ ਅਣਲਾਕ ਹੋਣ ਤੋਂ ਬਾਅਦ, 16KB ਵਿਕਲਪ ਦੀ ਕਿਰਿਆਸ਼ੀਲਤਾ ਲਈ ਡੀਵਾਈਸ ਨੂੰ ਦੋ ਵਾਰ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ। ਇਸ ਮੋਡ ਵਿੱਚ ਆਉਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਡੀਵਾਈਸ ਨੂੰ ਇੱਕ ਵਾਰ ਰੀਬੂਟ ਕਰ ਕੇ 4KB ਅਤੇ 16KB ਮੋਡ ਵਿਚਕਾਰ ਸਵਿੱਚ ਕਰ ਸਕਦੇ ਹੋ। ਇਨ੍ਹਾਂ ਮੋਡਾਂ ਵਿੱਚ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬੰਦ ਹੋ ਜਾਣਗੀਆਂ, ਇਸ ਲਈ ਸ਼ਾਇਦ ਕੁਝ ਐਪਲੀਕੇਸ਼ਨਾਂ ਕੰਮ ਨਾ ਕਰਨ। ਡੀਵਾਈਸ ਨੂੰ ਪ੍ਰੋਡਕਸ਼ਨ ਮੋਡ \'ਤੇ ਵਾਪਸ ਲਿਜਾਉਣ ਲਈ, ਤੁਹਾਨੂੰ 4KB ਮੋਡ \'ਤੇ ਵਾਪਸ ਸਵਿੱਚ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ ਅਤੇ ਫਿਰ OEM/ਬੂਟਲੋਡਰ ਡੀਵਾਈਸ ਨੂੰ ਲਾਕ ਕਰੇਗਾ (ਜਿਸ ਨਾਲ ਫੈਕਟਰੀ ਰੀਸੈੱਟ ਹੋ ਜਾਵੇਗਾ)। ਕਿਰਪਾ ਕਰਕੇ ਬੂਟਲੋਡਰ ਨੂੰ ਅਣਲਾਕ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਤੁਸੀਂ <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> \'ਤੇ ਜਾ ਕੇ ਇਸਨੂੰ ਕਰਨ ਦੇ ਤਰੀਕੇ ਸੰਬੰਧੀ ਹਿਦਾਇਤਾਂ ਦੇਖ ਸਕਦੇ ਹੋ"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4KB ਪੇਜ-ਐਗਨੌਸਟਿਕ ਮੋਡ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"ਤੁਸੀਂ ਪੇਜ-ਐਗਨੌਸਟਿਕ ਮੋਡ ਦੇ 4KB ਮੋਡ ਵਿੱਚ ਹੋ। ਇਸ ਮੋਡ ਵਿੱਚ ਸਾਫ਼ਟਵੇਅਰ ਅਖੰਡਤਾ ਦੀ ਗਰੰਟੀ ਨਹੀਂ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਅਤੇ ਬੂਟਲੋਡਰ ਦੇ ਅਣਲਾਕ ਰਹਿਣ ਦੌਰਾਨ ਫ਼ੋਨ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਡਾਟਾ ਖਤਰੇ ਵਿੱਚ ਰਹਿ ਸਕਦਾ ਹੈ। ਇਨ੍ਹਾਂ ਮੋਡਾਂ ਵਿੱਚ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬੰਦ ਹੋ ਜਾਣਗੀਆਂ, ਇਸ ਲਈ ਸ਼ਾਇਦ ਕੁਝ ਐਪਲੀਕੇਸ਼ਨਾਂ ਕੰਮ ਨਾ ਕਰਨ। ਪ੍ਰੋਡਕਸ਼ਨ ਮੋਡ ਵਿੱਚ ਮੁੜ-ਦਾਖਲ ਹੋਣ ਲਈ, ਡੀਵਾਈਸ ਦੇ ਬੂਟਲੋਡਰ ਨੂੰ ਲਾਕ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ। ਹੋਰ ਪੜ੍ਹਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"ਤੁਸੀਂ ਪੇਜ-ਐਗਨੌਸਟਿਕ ਮੋਡ ਦੇ 4KB ਮੋਡ ਵਿੱਚ ਹੋ। ਇਸ ਮੋਡ ਵਿੱਚ ਸਾਫ਼ਟਵੇਅਰ ਅਖੰਡਤਾ ਦੀ ਗਰੰਟੀ ਨਹੀਂ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਅਤੇ ਬੂਟਲੋਡਰ ਦੇ ਅਣਲਾਕ ਰਹਿਣ ਦੌਰਾਨ ਫ਼ੋਨ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਡਾਟਾ ਖਤਰੇ ਵਿੱਚ ਰਹਿ ਸਕਦਾ ਹੈ। ਇਨ੍ਹਾਂ ਮੋਡਾਂ ਵਿੱਚ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬੰਦ ਹੋ ਜਾਣਗੀਆਂ, ਇਸ ਲਈ ਸ਼ਾਇਦ ਕੁਝ ਐਪਲੀਕੇਸ਼ਨਾਂ ਕੰਮ ਨਾ ਕਰਨ। ਪ੍ਰੋਡਕਸ਼ਨ ਮੋਡ ਵਿੱਚ ਮੁੜ-ਦਾਖਲ ਹੋਣ ਲਈ, ਡੀਵਾਈਸ ਦੇ ਬੂਟਲੋਡਰ ਨੂੰ ਲਾਕ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ। ਇਸ ਨਾਲ ਡੀਵਾਈਸ ਦੁਬਾਰਾ ਫੈਕਟਰੀ ਰੀਸੈੱਟ ਹੋ ਕੇ ਪ੍ਰੋਡਕਸ਼ਨ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਮੁੜ-ਬਹਾਲ ਹੋ ਜਾਵੇਗਾ। ਡੀਵਾਈਸ ਦੇ Android ਵਿੱਚ ਸਫਲਤਾਪੂਰਵਕ ਬੂਟ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਵਿਕਾਸਕਾਰ ਵਿਕਲਪ ਵਿੱਚ OEM ਅਣਲਾਕ ਨੂੰ ਬੰਦ ਕਰੋ। ਜੇ ਡੀਵਾਈਸ Android ਵਿੱਚ ਬੂਟ ਹੋਣ ਵਿੱਚ ਅਸਫਲ ਰਹਿੰਦਾ ਹੈ ਜਾਂ ਅਸਥਿਰ ਹੈ, ਤਾਂ <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ਤੋਂ ਨਵੀਆਂ ਫੈਕਟਰੀ ਇਮੇਜਾਂ ਨਾਲ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਫਲੈਸ਼ ਕਰੋ ਜਾਂ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ਵਰਤੋ ਅਤੇ \'ਡੀਵਾਈਸ ਸਾਫ਼ ਕਰੋ\', \'ਬੂਟਲੋਡਰ ਲਾਕ ਕਰੋ\' ਅਤੇ \'ਸਾਰੇ ਹਿੱਸਿਆਂ ਨੂੰ ਜ਼ਬਰਦਸਤੀ ਫਲੈਸ਼ ਕਰੋ\' ਨੂੰ ਚੁਣੋ।"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16KB ਪੇਜ-ਐਗਨੌਸਟਿਕ ਮੋਡ ਵਰਤਿਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"ਤੁਸੀਂ ਪੇਜ-ਐਗਨੌਸਟਿਕ ਮੋਡ ਦੇ 16KB ਮੋਡ ਵਿੱਚ ਹੋ। ਇਸ ਮੋਡ ਵਿੱਚ ਸਾਫ਼ਟਵੇਅਰ ਅਖੰਡਤਾ ਦੀ ਗਰੰਟੀ ਨਹੀਂ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਅਤੇ ਬੂਟਲੋਡਰ ਦੇ ਅਣਲਾਕ ਹੋਣ ਵੇਲੇ ਫ਼ੋਨ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਡਾਟਾ ਜੋਖਮ ਵਿੱਚ ਹੋ ਸਕਦਾ ਹੈ। ਇਨ੍ਹਾਂ ਮੋਡਾਂ ਵਿੱਚ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬੰਦ ਹੋ ਜਾਣਗੀਆਂ, ਇਸ ਲਈ ਸ਼ਾਇਦ ਕੁਝ ਐਪਲੀਕੇਸ਼ਨਾਂ ਕੰਮ ਨਾ ਕਰਨ। ਪ੍ਰੋਡਕਸ਼ਨ ਮੋਡ ਵਿੱਚ ਮੁੜ-ਦਾਖਲ ਹੋਣ ਲਈ, ਤੁਹਾਡਾ 4KB ਮੋਡ \'ਤੇ ਵਾਪਸ ਸਵਿੱਚ ਕਰ ਕੇ ਡੀਵਾਈਸ ਦੇ ਬੂਟਲੋਡਰ ਨੂੰ ਲਾਕ ਕਰਨਾ ਲਾਜ਼ਮੀ ਹੈ। ਹੋਰ ਪੜ੍ਹਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"ਤੁਸੀਂ ਪੇਜ-ਐਗਨੌਸਟਿਕ ਮੋਡ ਦੇ 16KB ਮੋਡ ਵਿੱਚ ਹੋ। ਇਸ ਮੋਡ ਵਿੱਚ ਸਾਫ਼ਟਵੇਅਰ ਅਖੰਡਤਾ ਦੀ ਗਰੰਟੀ ਨਹੀਂ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਅਤੇ ਬੂਟਲੋਡਰ ਦੇ ਅਣਲਾਕ ਹੋਣ ਵੇਲੇ ਫ਼ੋਨ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਡਾਟਾ ਜੋਖਮ ਵਿੱਚ ਹੋ ਸਕਦਾ ਹੈ। ਇਨ੍ਹਾਂ ਮੋਡਾਂ ਵਿੱਚ ਕੁਝ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬੰਦ ਹੋ ਜਾਣਗੀਆਂ, ਇਸ ਲਈ ਸ਼ਾਇਦ ਕੁਝ ਐਪਲੀਕੇਸ਼ਨਾਂ ਕੰਮ ਨਾ ਕਰਨ। ਪ੍ਰੋਡਕਸ਼ਨ ਮੋਡ ਵਿੱਚ ਮੁੜ-ਦਾਖਲ ਹੋਣ ਲਈ, ਤੁਹਾਡਾ 4KB ਮੋਡ \'ਤੇ ਵਾਪਸ ਸਵਿੱਚ ਕਰ ਕੇ ਡੀਵਾਈਸ ਦੇ ਬੂਟਲੋਡਰ ਨੂੰ ਲਾਕ ਕਰਨਾ ਲਾਜ਼ਮੀ ਹੈ। ਇਸ ਨਾਲ ਡੀਵਾਈਸ ਦੁਬਾਰਾ ਫੈਕਟਰੀ ਰੀਸੈੱਟ ਹੋ ਕੇ ਪ੍ਰੋਡਕਸ਼ਨ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਮੁੜ-ਬਹਾਲ ਹੋ ਜਾਵੇਗਾ। ਡੀਵਾਈਸ ਦੇ Android ਵਿੱਚ ਸਫਲਤਾਪੂਰਵਕ ਬੂਟ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਵਿਕਾਸਕਾਰ ਵਿਕਲਪਾਂ ਵਿੱਚ OEM ਅਣਲਾਕ ਸੈਟਿੰਗ ਨੂੰ ਬੰਦ ਕਰੋ। ਜੇ ਡੀਵਾਈਸ Android ਵਿੱਚ ਬੂਟ ਹੋਣ ਵਿੱਚ ਅਸਫਲ ਰਹਿੰਦਾ ਹੈ ਜਾਂ ਅਸਥਿਰ ਹੈ, ਤਾਂ <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ਤੋਂ ਨਵੇਂ ਫੈਕਟਰੀ ਪ੍ਰਤਿਬਿੰਬਾਂ ਨਾਲ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਫਲੈਸ਼ ਕਰੋ ਜਾਂ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ਵਰਤੋ ਅਤੇ \'ਡੀਵਾਈਸ ਸਾਫ਼ ਕਰੋ\', \'ਬੂਟਲੋਡਰ ਨੂੰ ਲਾਕ ਕਰੋ\' ਅਤੇ \'ਸਾਰਿਆਂ ਹਿੱਸਿਆਂ ਨੂੰ ਜ਼ਬਰਦਸਤੀ ਫਲੈਸ਼ ਕਰੋ\'।"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB ਪੇਜ-ਐਗਨੌਸਟਿਕ ਮੋਡ"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"ਹੋਰ ਪੜ੍ਹੋ"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"ਬੱਗ ਰਿਪੋਰਟ ਹੈਂਡਲਰ"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"ਚੁਣੋ ਕਿ ਟੈਬਲੈੱਟ ਡੌਕ ਹੋਣ \'ਤੇ ਤੁਸੀਂ ਆਪਣੀ ਸਕ੍ਰੀਨ \'ਤੇ ਕੀ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ। ਸਕ੍ਰੀਨ ਸੇਵਰ ਦੀ ਵਰਤੋਂ ਹੋਣ \'ਤੇ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਜ਼ਿਆਦਾ ਊਰਜਾ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ।"</string>
<string name="customize_button_title" msgid="1110284655990203359">"ਵਿਉਂਤਬੱਧ ਕਰੋ"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰੋ"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ਫ਼੍ਰੀਫ਼ਾਰਮ ਸਹਾਇਤਾ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ਸੈਕੰਡਰੀ ਡਿਸਪਲੇਆਂ \'ਤੇ ਡੈਸਕਟਾਪ ਮੋਡ ਨੂੰ ਜ਼ਬਰਦਸਤੀ ਚਾਲੂ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"ਵਿਰਾਸਤੀ ਫ੍ਰੀਫਾਰਮ ਵਿੰਡੋ ਸਹਾਇਤਾ ਚਾਲੂ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"ਫ੍ਰੀਫਾਰਮ ਵਿੰਡੋ ਸਹਾਇਤਾ ਨੂੰ ਬਦਲਣ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"ਸੈਕੰਡਰੀ ਡਿਸਪਲੇਆਂ \'ਤੇ ਫ੍ਰੀਫਾਰਮ ਵਿੰਡੋ ਨੂੰ ਜ਼ਬਰਦਸਤੀ ਚਾਲੂ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ਹੁਣੇ ਰੀਬੂਟ ਕਰੋ"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ਬਾਅਦ ਵਿੱਚ ਰੀਬੂਟ ਕਰੋ"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ਸਪੇਸ਼ਿਅਲ ਆਡੀਓ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 9719ce2..cc2f202 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodano skan twarzy i <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodano skan twarzy, odcisk palca i <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodano skan twarzy, odciski palca i <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Jest to wymagane, ponieważ włączono kontrolę tożsamości"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opcje"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Ułatwienia dostępu"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Klawiatura fizyczna"</string>
- <string name="show_ime" msgid="4334255501724746849">"Używaj klawiatury ekranowej"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Pozostaw na ekranie, gdy aktywna jest klawiatura fizyczna"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Klawisze zwrócone"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Klawiatura ignoruje szybkie naciśnięcia tego samego klawisza powtórzone w ciągu <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Klawisze powolne"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Utwórz tryb"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Niestandardowy"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ograniczanie powiadomień"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Włącz tryb Nie przeszkadzać"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Dźwięki alarmów i multimediów mogą ignorować tryb Nie przeszkadzać"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Ustaw harmonogram"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Zaplanuj"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> godz. <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Włącz automatycznie"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Harmonogram"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Wycisz telefon o pewnych porach"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Ustaw reguły trybu Nie przeszkadzać"</string>
@@ -3541,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"otwórz powiadomienie"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Zezwalaj na odkładanie powiadomień"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Kropka powiadomienia na ikonie aplikacji"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Dymki"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Dymki"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Wyświetlaj tę rozmowę w dymkach"</string>
@@ -3834,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Wszystkie"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Zezwól na zastępowanie przez aplikacje"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacje, które mogą ignorować tryb Nie przeszkadzać"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Wybierz więcej aplikacji"</string>
@@ -4858,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Etui"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel ustawień"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Wymuś tryb pulpitu"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Wymuś eksperymentalny tryb pulpitu na dodatkowych ekranach"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Włącz dowolny rozmiar okien"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Włącz obsługę dowolnego rozmiaru okien."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Włącz dowolny rozmiar okien na drugim ekranie"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Włącz obsługę dowolnego rozmiaru okien tylko na drugim ekranie."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Włącz brak możliwości zmiany rozmiaru w trybie wielu okien"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Zezwala na wyświetlanie aplikacji bez możliwości zmiany rozmiaru w trybie wielu okien"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Wymuszaj tryb ciemny"</string>
@@ -4927,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Aby można było użyć trybu 16 kB w Opcjach programisty, musisz przekonwertować partycję danych na system ext4. W tym trybie nie można zagwarantować integralności oprogramowania. Kiedy program rozruchowy będzie odblokowany, dane zapisane na telefonie mogą być zagrożone. Po aktywowaniu trybu 16 kB będzie trzeba uruchomić urządzenie ponownie. Po włączeniu tego trybu przełączanie się między trybami 4 kB i 16 kB będzie wymagało tylko jednokrotnego restartu. W tych trybach niektóre funkcje będą wyłączone, a część aplikacji może nie działać. Aby przywrócić na urządzeniu tryb produkcyjny, musisz przełączyć je z powrotem na tryb 4 kB i zablokować program rozruchowy, co spowoduje zresetowanie urządzenia. Gdy na urządzeniu uruchomi się Android, wyłącz zdjęcie blokady OEM w Opcjach programisty. Z urządzenia zostaną usunięte wszystkie dane, a po potwierdzeniu system plików zmieni się na ext4. Po wykonaniu tych czynności wróć tutaj, aby ponownie włączyć tryb 16 kB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Usuń wszystkie dane"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Nie udało się wyczyścić partycji danych i sformatować jej jako ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Wymagane odblokowanie programu rozruchowego"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Aby można było użyć trybu 16 KB w Opcjach programisty, musisz odblokować program rozruchowy. W tym trybie nie można zagwarantować integralności oprogramowania. Kiedy program rozruchowy będzie odblokowany, dane zapisane na telefonie mogą być zagrożone. Po włączeniu trybu 16 KB zostaną usunięte wszystkie dane i ustawienia użytkownika. Gdy program rozruchowy zostanie odblokowany, będzie trzeba dwukrotnie uruchomić ponownie urządzenia, aby włączyć tryb 16 KB. Po włączeniu tego trybu przełączanie się między trybami 4 KB i 16 KB będzie wymagało tylko jednokrotnego restartu. W tych trybach niektóre funkcje będą wyłączone, a część aplikacji może nie działać. Aby przywrócić na urządzeniu tryb produkcyjny, musisz przełączyć je z powrotem na tryb 4 KB i włączyć blokadę OEM lub zablokować program rozruchowy, co spowoduje zresetowanie urządzenia. Odblokuj program rozruchowy i spróbuj jeszcze raz. Instrukcje znajdziesz na stronie <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>."</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Włączony jest ogólny tryb strony 4 kB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Korzystasz z ogólnego trybu strony 4 kB. W tym trybie nie można zagwarantować integralności oprogramowania. Kiedy program rozruchowy będzie odblokowany, dane zapisane na telefonie mogą być zagrożone. W tych trybach niektóre funkcje będą wyłączone, a część aplikacji może nie działać. Aby wrócić do trybu produkcyjnego, musisz zablokować program rozruchowy urządzenia. Kliknij, aby dowiedzieć się więcej."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Korzystasz z ogólnego trybu strony 4 kB. W tym trybie nie można zagwarantować integralności oprogramowania. Kiedy program rozruchowy będzie odblokowany, dane zapisane na telefonie mogą być zagrożone. W tych trybach niektóre funkcje będą wyłączone, a część aplikacji może nie działać. Aby wrócić do trybu produkcyjnego, musisz zablokować program rozruchowy urządzenia. Spowoduje to ponowne zresetowanie urządzenia i przywrócenie na nim ustawień produkcyjnych. Gdy na urządzeniu uruchomi się Android, wyłącz zdjęcie blokady OEM w Opcjach programisty. Jeśli nie uda się uruchomić Androida lub będzie on działać niestabilnie, sflashuj na urządzeniu najnowszy obraz fabryczny pobrany ze strony <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> lub użyj narzędzia <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> i wybierz kolejno opcje „Wyczyść pamięć urządzenia”, „Zablokuj program rozruchowy” i „Wymuś flashowanie wszystkich partycji”."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Włączony jest ogólny tryb strony 16 kB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Korzystasz z ogólnego trybu strony 16 KB. W tym trybie nie można zagwarantować integralności oprogramowania. Kiedy program rozruchowy będzie odblokowany, dane zapisane na telefonie mogą być zagrożone. W tych trybach niektóre funkcje będą wyłączone, a część aplikacji może nie działać. Aby wrócić do trybu produkcyjnego, musisz przełączyć się z powrotem na tryb 4 KB i zablokować program rozruchowy urządzenia. Kliknij, aby dowiedzieć się więcej."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Korzystasz z ogólnego trybu strony 16 KB. W tym trybie nie można zagwarantować integralności oprogramowania. Kiedy program rozruchowy będzie odblokowany, dane zapisane na telefonie mogą być zagrożone. W tych trybach niektóre funkcje będą wyłączone, a część aplikacji może nie działać. Aby wrócić do trybu produkcyjnego, musisz przełączyć się z powrotem na tryb 4 KB i zablokować program rozruchowy urządzenia. Spowoduje to ponowne zresetowanie urządzenia i przywrócenie na nim ustawień produkcyjnych. Gdy na urządzeniu uruchomi się Android, wyłącz zdjęcie blokady OEM w Opcjach programisty. Jeśli nie uda się uruchomić Androida lub będzie on działać niestabilnie, sflashuj na urządzeniu najnowszy obraz fabryczny pobrany ze strony <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> lub użyj narzędzia <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> i wybierz kolejno opcje „Wyczyść pamięć urządzenia”, „Zablokuj program rozruchowy” i „Wymuś flashowanie wszystkich partycji”."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Ogólny tryb strony 16 kB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Więcej informacji"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Obsługiwanie zgłaszania błędów"</string>
@@ -5186,8 +5189,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Wybierz, co ma być widoczne na ekranie, kiedy tablet będzie zadokowany. Urządzenie może pobierać więcej energii podczas korzystania z wygaszacza ekranu."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Dostosuj"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Dostosuj wygaszacz ekranu <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Włączenie obsługi trybu dowolnego wymaga ponownego uruchomienia."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Wymuszenie wersji na komputery na dodatkowych wyświetlaczach wymaga ponownego uruchomienia."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Włączenie obsługi dowolnego rozmiaru okien w starszej wersji wymaga ponownego uruchomienia urządzenia."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Zmiana obsługi dowolnego rozmiaru okien wymaga ponownego uruchomienia urządzenia."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Wymuszenie obsługi dowolnego rozmiaru okien na drugim ekranie wymaga ponownego uruchomienia urządzenia."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Uruchom ponownie teraz"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Uruchom ponownie później"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Dźwięk przestrzenny"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 3675a2d..2aa3b2a 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Isso é necessário porque a verificação de identidade está ativada"</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>
@@ -615,7 +616,7 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Instale apps"</b>\n"Instale os apps que você quer guardar no seu espaço com privacidade"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Observação importante"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Os apps são interrompidos quando você bloqueia o espaço"</b>\n"Ao bloquear o espaço, os apps nele serão interrompidos e você não vai receber notificações deles"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Os espaços privados não são adequados para apps que precisam ser executados em segundo plano ou enviar notificações importantes, como apps médicos. Isso porque as notificações e atividades em segundo plano são interrompidas quando o espaço é bloqueado.\n\nOs apps no espaço privado não vão aparecer na Gestão de permissões, no painel de privacidade nem em outras configurações quando o espaço estiver bloqueado.\n\nNão é possível transferir seu espaço privado para outro dispositivo. Você precisará configurar um novo espaço privado se quiser usá-lo em outro dispositivo.\n\nCaso alguém conecte seu dispositivo a um computador ou instale apps nocivos nele, essa pessoa poderá ter acesso ao seu espaço privado."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Os espaços privados não são adequados para apps que precisam ser executados em segundo plano ou enviam notificações importantes, como os que lidam com informações médicas, porque notificações e atividades em segundo plano são interrompidas quando o espaço é bloqueado.\n\nEm um espaço bloqueado, os apps não aparecem na Gestão de permissões, no painel de privacidade e nem em outras configurações.\n\nNão é possível transferir seu espaço privado para outro dispositivo. Você precisará configurar um novo espaço privado se quiser usá-lo em outro dispositivo.\n\nCaso alguém conecte seu dispositivo a um computador ou instale apps nocivos nele, essa pessoa poderá ter acesso ao seu espaço privado."</string>
<string name="private_space_settings_footer_text" msgid="3742468470394835356">"Os espaços privados não são adequados para apps que precisam ser executados em segundo plano ou enviar notificações importantes, como apps médicos. Isso porque as notificações e atividades em segundo plano são interrompidas quando o espaço é bloqueado.\n\nOs apps no espaço privado não vão aparecer na Gestão de permissões, no painel de privacidade nem em outras configurações quando o espaço estiver bloqueado.\n\nNão é possível restaurar seu espaço privado em outro dispositivo. Você precisará configurar um novo espaço privado se quiser usá-lo em outro dispositivo.\n\nCaso alguém conecte seu dispositivo a um computador ou instale apps maliciosos nele, essa pessoa poderá ter acesso ao seu espaço privado."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Saiba mais sobre o espaço privado"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Isso vai levar alguns instantes"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opções"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
- <string name="show_ime" msgid="4334255501724746849">"Usar teclado na tela"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Manter na tela enquanto o teclado físico estiver ativo"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Teclas de filtro"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"O teclado ignora pressionamentos rápidos e repetidos da mesma tecla dentro de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Criar um modo"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar interrupções"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Ativar o Não perturbe"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmes e sons de mídia podem interromper"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Definir uma programação"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programação"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>h e <xliff:g id="MINUTES">%2$d</xliff:g>min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Ativar automaticamente"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programação"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silenciar smartphone em horários específicos"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Definir regras do modo \"Não perturbe\""</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"abrir notificação"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Permitir adiar notificações"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Ponto de notificação no ícone do app"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Pacotes de notificações"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Balões"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Balões"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostrar conversa em um balão"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todos"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que apps modifiquem o \"Não perturbe\""</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que podem fazer interrupções"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecionar mais apps"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Estojo"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Painel de configurações"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Forçar modo de área de trabalho"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forçar o modo de área de trabalho experimental em telas secundárias"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Ativar janelas de forma livre"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Permitir compatibilidade com janelas de forma livre"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Permitir janelamento de forma livre na segunda tela"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Permitir janelas de forma livre apenas na tela secundária."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ativar recursos não redimensionáveis em várias janelas"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permitir que apps não redimensionáveis sejam usados em várias janelas"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Manter o recurso Forçar modo escuro ativado"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"A partição de dados deste dispositivo precisa ser convertida em ext4 antes do uso da opção para desenvolvedores de 16 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. A ativação da opção de 16 KB exigirá uma segunda reinicialização. Neste modo, você pode alternar entre os modos 4 KB e 16 KB com uma única reinicialização. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para voltar o dispositivo ao modo de produção, será necessário voltar para o modo 4 KB e, depois, bloquear o carregador de inicialização, o que redefine o dispositivo para os padrões de fábrica. Depois que o dispositivo for inicializado corretamente no Android, desative o desbloqueio de OEM nas Opções do desenvolvedor. Todos os dados serão excluídos permanentemente do dispositivo, e o sistema de arquivos vai mudar para ext4 após a confirmação. Depois disso, reative o modo 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Limpar todos os dados"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Falha ao apagar e reformatar a partição de dados para ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"É necessário desbloquear o carregador de inicialização"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"O carregador de inicialização precisa ser desbloqueado neste dispositivo antes do uso da opção para desenvolvedores de 16 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. Todos os dados do usuário e configurações serão apagados permanentemente durante a ativação do modo 16 KB. Após o desbloqueio do carregador de inicialização, a ativação da opção de 16 KB vai exigir duas reinicializações. Neste modo, você pode alternar entre os modos 4 KB e 16 KB com uma única reinicialização. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para voltar o dispositivo ao modo de produção, será necessário voltar para o modo 4 KB e, depois, bloquear o carregador de inicialização/OEM, o que redefine o dispositivo para os padrões de fábrica. Desbloqueie o carregador de inicialização e tente de novo. Para conferir instruções de como fazer isso, acesse <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Uso do modo agnóstico de páginas de 4 KB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Você está no modo agnóstico de páginas de 4 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para entrar de novo no modo de produção, desbloqueie o carregador de inicialização no dispositivo. Toque para ler mais."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Você está no modo agnóstico de páginas de 4 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para entrar de novo no modo de produção, desbloqueie o carregador de inicialização no dispositivo. Essa ação vai redefinir o dispositivo para os padrões de fábrica novamente. Depois que o dispositivo for inicializado corretamente no Android, desative o desbloqueio de OEM nas Opções do desenvolvedor. Se o dispositivo não for inicializado no Android ou estiver instável, atualize-o novamente com as imagens de fábrica mais recentes especificadas em <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> e selecione \"Excluir o dispositivo permanentemente\", \"Bloquear carregador de inicialização\" e \"Forçar a atualização de todas as partições\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Uso do modo agnóstico de páginas de 16 KB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Você está no modo agnóstico de páginas de 16 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para entrar de novo no modo de produção, volte para o modo 4 KB e, em seguida, bloqueie o carregador de inicialização no dispositivo. Toque para ler mais."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Você está no modo agnóstico de páginas de 16 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para entrar de novo no modo de produção, volte para o modo 4 KB e, em seguida, bloqueie o carregador de inicialização no dispositivo. Essa ação vai fazer a redefinição de fábrica do dispositivo novamente. Depois que o dispositivo for inicializado corretamente no Android, desative o desbloqueio de OEM nas Opções do desenvolvedor. Se o dispositivo não for inicializado no Android ou estiver instável, atualize-o novamente com as imagens de fábrica mais recentes especificadas em <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> e selecione \"Excluir o dispositivo permanentemente\", \"Bloquear carregador de inicialização\" e \"Forçar a atualização de todas as partições\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Modo agnóstico de páginas de 16 KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Leia mais"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Gerenciador de relatórios de bugs"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Escolha o que ver na tela quando o tablet estiver na base. O dispositivo pode consumir mais energia quando o protetor de tela é usado."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"É necessário reiniciar o dispositivo para ativar o suporte ao formato livre."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"É necessário reiniciar o dispositivo para forçar o modo área de trabalho em telas secundárias."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Uma reinicialização é necessária para ativar a compatibilidade com o janelamento legado de forma livre."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Uma reinicialização é necessária para mudar a compatibilidade com janelamento de forma livre."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Uma reinicialização é necessária para forçar o janelamento de forma livre em telas secundárias."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar mais tarde"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Áudio espacial"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 7425bb7..bd0085a 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Isto é necessário porque a verificação de identidade está ativada"</string>
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueio remoto do Authenticator"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Relógio adicionado"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configure o seu relógio"</string>
@@ -615,7 +616,7 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Instale apps"</b>\n"Instale as apps que quer manter privadas no seu espaço"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Tenha em atenção"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"As apps param quando bloqueia o seu espaço"</b>\n"Quando bloqueia o seu espaço, as respetivas apps são paradas e deixam de lhe enviar notificações"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Os espaços privados não são adequados para apps que precisem de ser executadas em segundo plano ou de enviar notificações críticas, como as apps médicas. Isto deve-se ao facto de as notificações e a atividade em segundo plano pararem quando o espaço está bloqueado.\n\nAs 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_apps_permission_text" msgid="4416201648436201393">"Os espaços privados não são adequados para apps que precisem de ser executadas em segundo plano ou de enviar notificações críticas, como as apps médicas. Isto deve-se ao facto de as notificações e a atividade em segundo plano pararem quando o espaço está bloqueado.\n\nAs apps no seu espaço privado não vão aparecer no gestor de autorizações, no painel de privacidade nem 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_settings_footer_text" msgid="3742468470394835356">"Os espaços privados não são adequados para apps que precisem de ser executadas em segundo plano ou de enviar notificações críticas, como as apps médicas. Isto deve-se ao facto de as notificações e a atividade em segundo plano pararem quando o espaço está bloqueado.\n\nAs 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 restaurar o seu espaço privado para um novo dispositivo. Tem de configurar outro espaço se quiser usá-lo noutro dispositivo.\n\nQualquer pessoa que ligue o seu dispositivo a um computador ou instale apps maliciosas no seu dispositivo pode conseguir aceder ao seu espaço privado."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Saiba mais sobre o espaço privado"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Esta ação vai demorar alguns instantes"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opções"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
- <string name="show_ime" msgid="4334255501724746849">"Usar o teclado no ecrã"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Manter no ecrã enquanto o teclado físico estiver ativo"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Teclas de rejeição"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"O teclado ignora os toques rápidos repetidos da mesma tecla no espaço de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Crie um modo"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizar"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limite as interrupções"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Ativar o modo Não incomodar"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Os sons de alarmes e multimédia podem interromper."</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Defina um horário"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Horário"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Ativar automaticamente"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Horário"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silenciar telemóvel se necessário"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Definir regras de Não incomodar"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"abrir notificação"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Permitir a suspensão de notificações"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Ponto de notificação no ícone da app"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Pacotes de notificações"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Balões"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Balões"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Apresentar esta conversa como balão"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todas"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que as apps substituam"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que podem interromper"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecione mais apps"</string>
@@ -4343,7 +4346,7 @@
<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="emergency_settings_preference_title" msgid="6183455153241187148">"Segurança e emergência"</string>
+ <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Segurança física 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>
<string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"Para aceder à página inicial, deslize para cima a partir da parte inferior do ecrã. Para mudar de app, deslize para cima a partir da parte inferior do ecrã sem soltar e, em seguida, solte. Para retroceder, deslize a partir da extremidade esquerda ou direita do ecrã."</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Caixa"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Painel Definições"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Forçar modo de ambiente de trabalho"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forçar modo de ambiente de trabalho experimental em ecrãs secundários"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Ativar janelas de forma livre"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Ative o suporte de janelas de forma livre."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Ativar janelas de forma livre no segundo ecrã"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Ative as janelas de forma livre apenas no ecrã secundário."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ativar apps não redimensionáveis em multijanelas"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite que as apps não redimensionáveis estejam em multijanelas."</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Substituir forçar o modo escuro"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"A partição de dados deste dispositivo tem de ser convertida em ext4 antes de usar a opção de programador de 16 KB. A integridade do software não pode ser garantida neste modo e quaisquer dados armazenados no telemóvel enquanto o carregador de arranque estiver desbloqueado podem estar em risco. A ativação da opção de 16 KB exige reiniciar mais uma vez depois desta ação. Quando este modo estiver ativado, pode alternar entre os modos de 4 KB e 16 KB depois de reiniciar uma vez. Algumas funcionalidades são desativadas nestes modos, por isso, algumas apps podem não funcionar. Para voltar a definir o modo de produção no dispositivo, precisa de voltar a ativar o modo de 4 KB e, de seguida, bloquear o carregador de arranque, o que repõe as definições de fábrica do dispositivo. Depois de o dispositivo arrancar com êxito no Android, desative o desbloqueio pelo OEM nas Opções de programador. O dispositivo vai ser limpo e o sistema de ficheiros vai ser alterado para ext4 após a confirmação. Concluído este passo, ative novamente o modo de 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Apagar todos os dados"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Falha ao reformatar e limpar a partição de dados para ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Desbloqueio do carregador de arranque necessário"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Este dispositivo precisa de desbloquear o carregador de arranque antes de usar a opção de programador de 16 KB. A integridade do software não pode ser garantida neste modo e quaisquer dados armazenados no telemóvel enquanto o carregador de arranque estiver desbloqueado podem estar em risco. Todos os dados e definições do utilizador são limpos com a ativação do modo de 16 KB. Uma vez desbloqueado o carregador de arranque, a ativação da opção de 16 KB exige reiniciar duas vezes. Quando este modo estiver ativado, pode alternar entre os modos de 4 KB e 16 KB depois de reiniciar uma vez. Algumas funcionalidades são desativadas nestes modos, por isso, algumas apps podem não funcionar. Para voltar a definir o modo de produção no dispositivo, precisa de voltar a ativar o modo de 4 KB e, de seguida, bloquear o OEM/carregador de arranque (o que repõe as definições de fábrica do dispositivo). Desbloqueie o carregador de arranque e tente novamente. Pode ver instruções sobre como o fazer em <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"A usar o modo sem página de 4 KB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Está no modo de 4 KB do modo sem página. A integridade do software não pode ser garantida neste modo e quaisquer dados armazenados no telemóvel enquanto o carregador de arranque estiver desbloqueado podem estar em risco. Algumas funcionalidades são desativadas nestes modos, por isso, algumas apps podem não funcionar. Para voltar a ativar o modo de produção, tem de bloquear o carregador de arranque do dispositivo. Toque para ler mais."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Está no modo de 4 KB do modo sem página. A integridade do software não pode ser garantida neste modo e quaisquer dados armazenados no telemóvel enquanto o carregador de arranque estiver desbloqueado podem estar em risco. Algumas funcionalidades são desativadas nestes modos, por isso, algumas apps podem não funcionar. Para voltar a ativar o modo de produção, tem de bloquear o carregador de arranque do dispositivo. Esta ação permite fazer uma reposição de fábrica do dispositivo e restaurá-lo para as definições de produção. Depois de o dispositivo arrancar com êxito no Android, desative o desbloqueio pelo OEM nas Opções de programador. Se o dispositivo não conseguir arrancar no Android ou estiver instável, volte a atualizar o dispositivo com as imagens de fábrica mais recentes de <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> e selecione \"Limpar dispositivo\", \"Bloquear carregador de arranque\" e \"Forçar a atualização de todas as partições\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"A usar o modo sem página de 16 KB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Está ativado o modo de 16 KB do modo sem página. A integridade do software não pode ser garantida neste modo e quaisquer dados armazenados no telemóvel enquanto o carregador de arranque estiver desbloqueado podem estar em risco. Algumas funcionalidades são desativadas nestes modos, por isso, algumas apps podem não funcionar. Para voltar a ativar o modo de produção, tem de voltar ao modo de 4 KB e, de seguida, bloquear o carregador de arranque do dispositivo. Toque para ler mais."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Está ativado o modo de 16 KB do modo sem página. A integridade do software não pode ser garantida neste modo e quaisquer dados armazenados no telemóvel enquanto o carregador de arranque estiver desbloqueado podem estar em risco. Algumas funcionalidades são desativadas nestes modos, por isso, algumas apps podem não funcionar. Para voltar a ativar o modo de produção, tem de voltar ao modo de 4 KB e, de seguida, bloquear o carregador de arranque do dispositivo. Esta ação permite fazer uma reposição de fábrica do dispositivo e restaurá-lo para as definições de produção. Depois de o dispositivo arrancar com êxito no Android, desative o desbloqueio pelo OEM nas Opções de programador. Se o dispositivo não conseguir arrancar no Android ou estiver instável, volte a atualizar o dispositivo com as imagens de fábrica mais recentes de <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> e selecione \"Limpar dispositivo\", \"Bloquear carregador de arranque\" e \"Forçar a atualização de todas as partições\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Modo sem página de 16 KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Ler mais"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Controlador do relatório de erro"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Escolha o que é apresentado no ecrã quando o seu tablet está na estação de carregamento. O seu dispositivo pode consumir mais energia quando é usada uma proteção de ecrã."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"É necessário reiniciar para ativar o suporte de forma livre."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"É necessário reiniciar para forçar o modo de ambiente de trabalho em ecrãs secundários."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Para ativar o suporte das antigas janelas de forma livre, é necessário reiniciar."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Para alterar o suporte das janelas de forma livre, é necessário reiniciar."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Para forçar as janelas de forma livre em ecrãs secundários, é necessário reiniciar."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar mais tarde"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Áudio espacial"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 3675a2d..2aa3b2a 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Isso é necessário porque a verificação de identidade está ativada"</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>
@@ -615,7 +616,7 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Instale apps"</b>\n"Instale os apps que você quer guardar no seu espaço com privacidade"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Observação importante"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Os apps são interrompidos quando você bloqueia o espaço"</b>\n"Ao bloquear o espaço, os apps nele serão interrompidos e você não vai receber notificações deles"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Os espaços privados não são adequados para apps que precisam ser executados em segundo plano ou enviar notificações importantes, como apps médicos. Isso porque as notificações e atividades em segundo plano são interrompidas quando o espaço é bloqueado.\n\nOs apps no espaço privado não vão aparecer na Gestão de permissões, no painel de privacidade nem em outras configurações quando o espaço estiver bloqueado.\n\nNão é possível transferir seu espaço privado para outro dispositivo. Você precisará configurar um novo espaço privado se quiser usá-lo em outro dispositivo.\n\nCaso alguém conecte seu dispositivo a um computador ou instale apps nocivos nele, essa pessoa poderá ter acesso ao seu espaço privado."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Os espaços privados não são adequados para apps que precisam ser executados em segundo plano ou enviam notificações importantes, como os que lidam com informações médicas, porque notificações e atividades em segundo plano são interrompidas quando o espaço é bloqueado.\n\nEm um espaço bloqueado, os apps não aparecem na Gestão de permissões, no painel de privacidade e nem em outras configurações.\n\nNão é possível transferir seu espaço privado para outro dispositivo. Você precisará configurar um novo espaço privado se quiser usá-lo em outro dispositivo.\n\nCaso alguém conecte seu dispositivo a um computador ou instale apps nocivos nele, essa pessoa poderá ter acesso ao seu espaço privado."</string>
<string name="private_space_settings_footer_text" msgid="3742468470394835356">"Os espaços privados não são adequados para apps que precisam ser executados em segundo plano ou enviar notificações importantes, como apps médicos. Isso porque as notificações e atividades em segundo plano são interrompidas quando o espaço é bloqueado.\n\nOs apps no espaço privado não vão aparecer na Gestão de permissões, no painel de privacidade nem em outras configurações quando o espaço estiver bloqueado.\n\nNão é possível restaurar seu espaço privado em outro dispositivo. Você precisará configurar um novo espaço privado se quiser usá-lo em outro dispositivo.\n\nCaso alguém conecte seu dispositivo a um computador ou instale apps maliciosos nele, essa pessoa poderá ter acesso ao seu espaço privado."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Saiba mais sobre o espaço privado"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Isso vai levar alguns instantes"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opções"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
- <string name="show_ime" msgid="4334255501724746849">"Usar teclado na tela"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Manter na tela enquanto o teclado físico estiver ativo"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Teclas de filtro"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"O teclado ignora pressionamentos rápidos e repetidos da mesma tecla dentro de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Criar um modo"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar interrupções"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Ativar o Não perturbe"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmes e sons de mídia podem interromper"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Definir uma programação"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programação"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>h e <xliff:g id="MINUTES">%2$d</xliff:g>min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Ativar automaticamente"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programação"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Silenciar smartphone em horários específicos"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Definir regras do modo \"Não perturbe\""</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"abrir notificação"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Permitir adiar notificações"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Ponto de notificação no ícone do app"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Pacotes de notificações"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Balões"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Balões"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostrar conversa em um balão"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todos"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que apps modifiquem o \"Não perturbe\""</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que podem fazer interrupções"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecionar mais apps"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Estojo"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Painel de configurações"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Forçar modo de área de trabalho"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forçar o modo de área de trabalho experimental em telas secundárias"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Ativar janelas de forma livre"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Permitir compatibilidade com janelas de forma livre"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Permitir janelamento de forma livre na segunda tela"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Permitir janelas de forma livre apenas na tela secundária."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ativar recursos não redimensionáveis em várias janelas"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permitir que apps não redimensionáveis sejam usados em várias janelas"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Manter o recurso Forçar modo escuro ativado"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"A partição de dados deste dispositivo precisa ser convertida em ext4 antes do uso da opção para desenvolvedores de 16 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. A ativação da opção de 16 KB exigirá uma segunda reinicialização. Neste modo, você pode alternar entre os modos 4 KB e 16 KB com uma única reinicialização. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para voltar o dispositivo ao modo de produção, será necessário voltar para o modo 4 KB e, depois, bloquear o carregador de inicialização, o que redefine o dispositivo para os padrões de fábrica. Depois que o dispositivo for inicializado corretamente no Android, desative o desbloqueio de OEM nas Opções do desenvolvedor. Todos os dados serão excluídos permanentemente do dispositivo, e o sistema de arquivos vai mudar para ext4 após a confirmação. Depois disso, reative o modo 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Limpar todos os dados"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Falha ao apagar e reformatar a partição de dados para ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"É necessário desbloquear o carregador de inicialização"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"O carregador de inicialização precisa ser desbloqueado neste dispositivo antes do uso da opção para desenvolvedores de 16 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. Todos os dados do usuário e configurações serão apagados permanentemente durante a ativação do modo 16 KB. Após o desbloqueio do carregador de inicialização, a ativação da opção de 16 KB vai exigir duas reinicializações. Neste modo, você pode alternar entre os modos 4 KB e 16 KB com uma única reinicialização. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para voltar o dispositivo ao modo de produção, será necessário voltar para o modo 4 KB e, depois, bloquear o carregador de inicialização/OEM, o que redefine o dispositivo para os padrões de fábrica. Desbloqueie o carregador de inicialização e tente de novo. Para conferir instruções de como fazer isso, acesse <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Uso do modo agnóstico de páginas de 4 KB"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Você está no modo agnóstico de páginas de 4 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para entrar de novo no modo de produção, desbloqueie o carregador de inicialização no dispositivo. Toque para ler mais."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Você está no modo agnóstico de páginas de 4 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para entrar de novo no modo de produção, desbloqueie o carregador de inicialização no dispositivo. Essa ação vai redefinir o dispositivo para os padrões de fábrica novamente. Depois que o dispositivo for inicializado corretamente no Android, desative o desbloqueio de OEM nas Opções do desenvolvedor. Se o dispositivo não for inicializado no Android ou estiver instável, atualize-o novamente com as imagens de fábrica mais recentes especificadas em <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> e selecione \"Excluir o dispositivo permanentemente\", \"Bloquear carregador de inicialização\" e \"Forçar a atualização de todas as partições\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Uso do modo agnóstico de páginas de 16 KB"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Você está no modo agnóstico de páginas de 16 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para entrar de novo no modo de produção, volte para o modo 4 KB e, em seguida, bloqueie o carregador de inicialização no dispositivo. Toque para ler mais."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Você está no modo agnóstico de páginas de 16 KB. A integridade do software não é garantida nesse modo, e todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem ser expostos a riscos. Como alguns recursos serão desativados nesses modos, alguns aplicativos podem não funcionar. Para entrar de novo no modo de produção, volte para o modo 4 KB e, em seguida, bloqueie o carregador de inicialização no dispositivo. Essa ação vai fazer a redefinição de fábrica do dispositivo novamente. Depois que o dispositivo for inicializado corretamente no Android, desative o desbloqueio de OEM nas Opções do desenvolvedor. Se o dispositivo não for inicializado no Android ou estiver instável, atualize-o novamente com as imagens de fábrica mais recentes especificadas em <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ou use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> e selecione \"Excluir o dispositivo permanentemente\", \"Bloquear carregador de inicialização\" e \"Forçar a atualização de todas as partições\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Modo agnóstico de páginas de 16 KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Leia mais"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Gerenciador de relatórios de bugs"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Escolha o que ver na tela quando o tablet estiver na base. O dispositivo pode consumir mais energia quando o protetor de tela é usado."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"É necessário reiniciar o dispositivo para ativar o suporte ao formato livre."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"É necessário reiniciar o dispositivo para forçar o modo área de trabalho em telas secundárias."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Uma reinicialização é necessária para ativar a compatibilidade com o janelamento legado de forma livre."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Uma reinicialização é necessária para mudar a compatibilidade com janelamento de forma livre."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Uma reinicialização é necessária para forçar o janelamento de forma livre em telas secundárias."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar mais tarde"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Áudio espacial"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index c1de513..497d2a6 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Acțiunea este necesară deoarece Verificarea identității este activată"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opțiuni"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilitate"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Tastatură fizică"</string>
- <string name="show_ime" msgid="4334255501724746849">"Folosește tastatura pe ecran"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Se păstrează pe ecran cât timp este activată tastatura fizică"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Taste nerepetate"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Tastatura ignoră apăsările repetate rapid ale aceleiași taste în <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Taste lente"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuă oricum"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Anulează"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Setări pentru mărire"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mută lupa cu un deget"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Trage cu degetul pentru a te deplasa pe ecran"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mută zona de mărit trăgând cu un deget."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mută zona de mărit trăgând cu două degete."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Opțiune indisponibilă dacă se mărește numai o parte a ecranului"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Atinge un buton pentru a micșora/mări"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Mărește rapid conținutul de pe ecran"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Pentru a mări:</b><br/> {0,number,integer}. folosește comanda rapidă ca să începi mărirea;<br/> {1,number,integer}. atinge ecranul;<br/> {2,number,integer}. glisează cu două degete ca să te deplasezi pe ecran;<br/> {3,number,integer}. ciupește cu două degete ca să ajustezi nivelul de zoom;<br/> {4,number,integer}. folosește comanda rapidă ca să oprești mărirea.<br/><br/> <b>Pentru a mări temporar:</b><br/> {0,number,integer}. asigură-te că tipul de mărire este setat la ecran complet;<br/> {1,number,integer}. folosește comanda rapidă ca să începi mărirea;<br/> {2,number,integer}. atinge lung oriunde pe ecran;<br/> {3,number,integer}. glisează cu degetul ca să te deplasezi pe ecran;<br/> {4,number,integer}. ridică degetul ca să oprești mărirea."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Pentru a mări:</b><br/> {0,number,integer}. folosește comanda rapidă ca să începi mărirea<br/> {1,number,integer}; atinge ecranul<br/> {2,number,integer}; glisează cu două degete ca să te deplasezi pe ecran<br/> {3,number,integer}; ciupește cu două degete ca să ajustezi nivelul de zoom<br/> {4,number,integer}. Folosește comanda rapidă ca să oprești mărirea.<br/><br/> Poți și să mărești temporar și multe altele."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Pentru a mări:</b><br/> {0,number,integer}. folosește comanda rapidă ca să începi mărirea<br/> {1,number,integer}; atinge ecranul<br/> {2,number,integer}; trage cu unul sau două degete ca să te deplasezi pe ecran<br/> {3,number,integer}; ciupește cu două degete ca să ajustezi nivelul de zoom<br/> {4,number,integer}. Folosește comanda rapidă ca să oprești mărirea.<br/><br/> Poți și să mărești temporar și multe altele."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Când mărirea este activată, poți mări ecranul curent.\n\n"<b>"Pentru a mări"</b>", începe mărirea, apoi atinge oriunde pe ecran.\n"<ul><li>"Trage cu două sau mai multe degete pentru a derula"</li>\n<li>"Ciupește cu două sau mai multe degete pentru a regla nivelul de zoom"</li></ul>\n\n<b>"Pentru a mări temporar"</b>", începe mărirea, apoi atinge lung oriunde pe ecran.\n"<ul><li>"Trage pentru a te mișca pe ecran"</li>\n<li>"Ridică degetul pentru a micșora"</li></ul>\n\n"Nu poți mări pe tastatură și pe bara de navigare."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Pagina <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> din <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Comandă rapidă pentru butonul de accesibilitate"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Creează un mod"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizat"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitează întreruperile"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activează Nu deranja"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmele și sunetele media îl pot întrerupe"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Setează un program"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Program"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Activează automat"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Program"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Dezactivează sunetul uneori"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Setează regulile pentru Nu deranja"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"deschide notificarea"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Permite amânarea notificărilor"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Punct de notificare pe pictogramă"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Pachete de notificări"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Baloane"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Baloane"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Afișează conversația în balon"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Toate"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permite aplicațiilor să ignore"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicații care pot întrerupe"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selectează mai multe aplicații"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Carcasă"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panou de setări"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Forțează modul desktop"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forțează modul desktop experimental pe ecrane secundare"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Activează ferestrele cu formă liberă"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Activează compatibilitatea pentru ferestrele cu formă liberă."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Activează ferestrele cu formă liberă pe ecranul II"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Activează ferestrele cu formă liberă doar pe ecranul II."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Permite aplicații fără redimensionare în ferestre multiple"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite aplicațiile fără redimensionare în ferestre multiple"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Modifică funcția Force-Dark"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Partiția de date a acestui dispozitiv trebuie schimbată la ext4 înainte de a folosi opțiunea pentru dezvoltatori pe 16 KB. Integritatea software-ului nu poate fi garantată în acest mod și toate datele stocate pe telefon cât timp bootloaderul este deblocat pot fi în pericol. Activarea opțiunii pe 16 KB va necesita încă o repornire după această acțiune. Când te afli în acest mod, poți să comuți între modul de 4 KB și cel de 16 KB printr-o repornire. Unele funcții vor fi dezactivate în aceste moduri, prin urmare este posibil ca unele aplicații să nu funcționeze. Pentru a readuce dispozitivul în modul de producție, trebuie să revii la modul pe 4 KB, apoi să blochezi bootloaderul, acțiune care aduce dispozitivul la setările din fabrică. După ce dispozitivul pornește în sistemul Android, dezactivează deblocarea OEM în Opțiuni pentru dezvoltatori. Datele de pe dispozitiv vor fi șterse și sistemul de fișiere se va schimba în ext4 după confirmare. După finalizarea acțiunii, reactivează modul pe 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Șterge toate datele"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Nu s-a putut reformata și golește partiția de date cu ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Este necesară deblocarea bootloaderului"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Bootloaderul dispozitivului trebuie deblocat înainte de a folosi opțiunea pentru dezvoltatori pe 16 KB. Integritatea software-ului nu poate fi garantată în acest mod și toate datele stocate pe telefon cât timp bootloaderul este deblocat pot fi în pericol. Toate datele și setările utilizatorului vor fi șterse la activarea modului pe 16 KB. După deblocarea bootloaderului, activarea opțiunii pe 16 KB va necesita două reporniri. Când te afli în acest mod, poți să comuți între modul de 4 KB și cel de 16 KB printr-o repornire. Unele funcții vor fi dezactivate în aceste moduri, prin urmare este posibil ca unele aplicații să nu funcționeze. Pentru a readuce dispozitivul în modul de producție, trebuie să revii la modul pe 4 KB, apoi să blochezi OEM / bootloaderul dispozitivului (acțiune care aduce dispozitivul la setările din fabrică). Deblochează bootloaderul și încearcă din nou. Găsești instrucțiuni pentru acest proces la <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Se folosește modul pe 4 KB independent de dimensiunea paginii."</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Ești în modul pe 4 KB independent de dimensiunea paginii. Integritatea software-ului nu poate fi garantată în acest mod și toate datele stocate pe telefon cât timp bootloaderul este deblocat pot fi în pericol. Unele funcții vor fi dezactivate în aceste moduri, prin urmare este posibil ca unele aplicații să nu funcționeze. Pentru a intra din nou în modul de producție, trebuie să blochezi bootloaderul dispozitivului. Atinge pentru a citi mai multe."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Ești în modul pe 4 KB independent de dimensiunea paginii. Integritatea software-ului nu poate fi garantată în acest mod și toate datele stocate pe telefon cât timp bootloaderul este deblocat pot fi în pericol. Unele funcții vor fi dezactivate în aceste moduri, prin urmare este posibil ca unele aplicații să nu funcționeze. Pentru a intra din nou în modul de producție, trebuie să blochezi bootloaderul dispozitivului. Astfel, dispozitivul revine din nou la setările din fabrică și este restabilit la setările de producție. După ce dispozitivul pornește în sistemul Android, dezactivează deblocarea OEM în Opțiuni pentru dezvoltatori. Dacă dispozitivul nu pornește în sistemul Android sau este instabil, reinstalează cele mai recente configurații din fabrică pe dispozitiv de la <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> sau accesează <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> și selectează Wipe Device (Șterge datele de pe dispozitiv) > Lock Bootloader (Blochează bootloaderul) > Force Flash all partitions (Instalează forțat pe toate partițiile)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Se folosește modul pe 16 KB independent de dimensiunea paginii."</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Ești în modul pe 16 KB independent de dimensiunea paginii. Integritatea software-ului nu poate fi garantată în acest mod și toate datele stocate pe telefon cât timp bootloaderul este deblocat pot fi în pericol. Unele funcții vor fi dezactivate în aceste moduri, prin urmare este posibil ca unele aplicații să nu funcționeze. Pentru a intra din nou în modul de producție, trebuie să revii la modul pe 4 KB, apoi să blochezi bootloaderul dispozitivului. Atinge pentru a citi mai multe."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Ești în modul pe 16 KB independent de dimensiunea paginii. Integritatea software-ului nu poate fi garantată în acest mod și toate datele stocate pe telefon cât timp bootloaderul este deblocat pot fi în pericol. Unele funcții vor fi dezactivate în aceste moduri, prin urmare este posibil ca unele aplicații să nu funcționeze. Pentru a intra din nou în modul de producție, trebuie să revii la modul pe 4 KB, apoi să blochezi bootloaderul dispozitivului. Astfel, dispozitivul revine din nou la setările din fabrică și este restabilit la setările de producție. După ce dispozitivul pornește în sistemul Android, dezactivează deblocarea OEM în Opțiuni pentru dezvoltatori. Dacă dispozitivul nu pornește în sistemul Android sau este instabil, reinstalează cele mai recente configurații din fabrică pe dispozitiv de la <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> sau accesează <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> și selectează Wipe Device (Șterge datele de pe dispozitiv) > Lock Bootloader (Blochează bootloaderul) > Force Flash all partitions (Instalează forțat pe toate partițiile)."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Modul pe 16 KB independent de dimensiunea paginii"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Citește mai multe"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Handler pentru rapoartele de eroare"</string>
@@ -5189,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Alege ce vei vedea pe ecran când tableta este andocată. Dispozitivul poate consuma mai multă energie când folosește un screensaver."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personalizează"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Personalizează <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Este nevoie de o repornire pentru a activa asistența cu formă liberă."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Este nevoie de o repornire pentru a impune modul computer pe ecranele secundare."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Este necesară o repornire pentru a activa compatibilitatea pentru ferestrele vechi cu formă liberă."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Este necesară o repornire pentru a schimba compatibilitatea pentru ferestrele cu formă liberă."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Este necesară o repornire pentru a forța utilizarea ferestrelor cu formă liberă pe ecranele secundare."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Repornește acum"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Repornește mai târziu"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio spațial"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index cca5d8d..fc10c80 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Модель лица и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Модель лица, отпечаток пальца и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Модель лица, отпечатки пальцев и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Это необходимо, так как включена проверка личности."</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>
@@ -611,13 +612,13 @@
<string name="private_space_hide_apps_summary" msgid="4418722947376042418">"Создайте пространство для личных приложений, которое можно скрыть или защитить с помощью блокировки. В целях безопасности используйте отдельный аккаунт Google."</string>
<string name="private_space_setup_sub_header" msgid="550476876393954356">"Как это работает"</string>
<string name="private_space_separate_account_text" msgid="790319706810190320"><b>"Создайте аккаунт Google для частного пространства"</b>\n"Так синхронизированные файлы, фотографии и электронные письма не будут видны вне частного пространства"</string>
- <string name="private_space_protected_lock_text" msgid="9123250938334372735"><b>"Блокировка"</b>\n"Заблокируйте частное пространство, чтобы другие пользователи не могли его открыть."</string>
+ <string name="private_space_protected_lock_text" msgid="9123250938334372735"><b>"Включите блокировку"</b>\n"Заблокируйте частное пространство, чтобы другие пользователи не могли его открыть"</string>
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Установите приложения"</b>\n"Доступ к ним будет только у вас"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Важно!"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Если заблокировать частное пространство, работа приложений в нем остановится"</b>\n"Также перестанут приходить уведомления от них"</string>
<string name="private_space_apps_permission_text" msgid="4416201648436201393">"Частное пространство не подходит для приложений, например медицинских, которым необходимо работать в фоновом режиме и отправлять важные уведомления. Это связано с тем, что когда оно заблокировано, фоновые процессы и отправка уведомлений в нем останавливаются.\n\nКогда частное пространство заблокировано, приложения из него не показываются в разделе \"Управление разрешениями\", на панели управления разрешениями и в других настройках.\n\nЧастное пространство нельзя перенести на другое устройство, но можно создать новое.\n\nДоступ к частному пространству может получить другой человек, если ему удастся установить на устройство вредоносные приложения или подключить его к компьютеру."</string>
<string name="private_space_settings_footer_text" msgid="3742468470394835356">"Частное пространство не подходит для приложений, например медицинских, которым необходимо работать в фоновом режиме и отправлять важные уведомления. Это связано с тем, что когда оно заблокировано, фоновые процессы и отправка уведомлений в нем останавливаются.\n\nКогда частное пространство заблокировано, приложения из него не показываются в разделе \"Управление разрешениями\", на панели управления разрешениями и в других настройках.\n\nЧастное пространство нельзя восстановить на другом устройстве, но можно создать новое.\n\nДоступ к частному пространству может получить другой человек, если ему удастся установить на устройство вредоносные приложения или подключить его к компьютеру."</string>
- <string name="private_space_learn_more_text" msgid="5314198983263277586">"Подробнее о личном пространстве"</string>
+ <string name="private_space_learn_more_text" msgid="5314198983263277586">"Подробнее о частном пространстве"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Это займет некоторое время."</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"Создание личного пространства…"</string>
<string name="private_space_error_screen_title" msgid="739381738044418346">"Не удалось создать частное пространство"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Параметры"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Специальные возможности"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Физическая клавиатура"</string>
- <string name="show_ime" msgid="4334255501724746849">"Использовать экранную клавиатуру"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Не скрывать экранную клавиатуру, когда включена физическая"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Контроль повторного нажатия"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Повторные нажатия одной клавиши в течение <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мс игнорируются"</string>
<string name="slow_keys" msgid="2891452895499690837">"Медленные клавиши"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Создайте режим"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Свой вариант"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Отключение уведомлений"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Включите режим \"Не беспокоить\""</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Режим \"Не беспокоить\" не действует для будильников и звука в медиафайлах"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Создайте расписание"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Расписание"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ч. <xliff:g id="MINUTES">%2$d</xliff:g> мин."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Включать автоматически"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Расписание"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Отключать звук в заданное время"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Настройте правила режима \"Не беспокоить\"."</string>
@@ -3541,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"Открыть уведомление"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Разрешить откладывать уведомления"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Значок уведомления на значке приложения"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Всплывающие чаты"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Всплывающие чаты"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Всплывающий чат"</string>
@@ -3834,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Все"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Разрешить приложениям переопределять \"Не беспокоить\""</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Приложения, для которых не действует режим \"Не беспокоить\""</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Другие приложения"</string>
@@ -4858,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Зарядный чехол"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарея"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Панель настроек"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Принудительное включение режима рабочего стола"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Принудительное включение экспериментального режима рабочего стола на дополнительных экранах"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Разрешить окна произвольной формы"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Включить функцию для создания окон произвольной формы"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Разрешить окна произвольной формы на втором экране"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Включить функцию для создания окон произвольной формы только на дополнительном экране"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Включить неизменяемый масштаб в многооконном режиме"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Открывать приложения с неизменяемым масштабом в многооконном режиме"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Переопределение включения тёмной темы"</string>
@@ -4927,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Прежде чем использовать параметр для разработчиков и менять размер страницы памяти на 16 КБ, преобразуйте раздел данных на этом устройстве в файловую систему ext4. После этого гарантировать целостность программного обеспечения будет невозможно. Любые данные, сохраненные на телефоне, пока загрузчик операционной системы разблокирован, могут быть под угрозой. При выполнении процедуры устройство нужно будет перезагрузить ещё раз. В этом режиме для переключения между размерами страницы памяти (4 КБ и 16 КБ) требуется одна перезагрузка. Некоторые функции будут отключены, поэтому отдельные приложения могут не работать. Чтобы сбросить настройки и вернуть устройство в производственный режим, вновь уменьшите размер страницы памяти до 4 КБ и заблокируйте загрузчик операционной системы. После успешного запуска Android отключите разблокировку загрузчика в разделе \"Для разработчиков\". При подтверждении данные с вашего устройства будут удалены, а файловая система будет изменена на ext4. Затем снова увеличьте размер страницы памяти до 16 КБ."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Удалить все данные"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Не удалось отформатировать раздел данных и сменить файловую систему на ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Необходимо разблокировать загрузчик операционной системы"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Прежде чем использовать параметр для разработчиков и менять размер страницы памяти на 16 кБ, разблокируйте загрузчик операционной системы на этом устройстве. После этого гарантировать целостность программного обеспечения будет невозможно. Любые данные, сохраненные на телефоне, пока загрузчик операционной системы разблокирован, могут быть под угрозой. При повышении размера до 16 кБ все пользовательские данные и настройки будут удалены. После разблокировки загрузчика операционной системы потребуется перезагрузить устройство два раза. В этом режиме для переключения между размерами страницы памяти (4 кБ и 16 кБ) требуется одна перезагрузка. Некоторые функции будут отключены, поэтому отдельные приложения могут не работать. Чтобы сбросить настройки и вернуть устройство в производственный режим, вновь уменьшите размер до 4 кБ и заблокируйте загрузчик операционной системы. Разблокируйте загрузчик и повторите попытку. Сведения о том, как это сделать, опубликованы на странице <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>."</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Режим, который не зависит от страниц, с ядром 4 KБ"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Вы используете режим работы, который не зависит от страниц, с размером страницы 4 КБ. Гарантировать целостность программного обеспечения при этом невозможно. Любые данные, сохраненные на телефоне, пока загрузчик операционной системы разблокирован, могут быть под угрозой. Некоторые функции будут отключены, поэтому отдельные приложения могут не работать. Чтобы вернуться в производственный режим, заблокируйте загрузчик операционной системы. Нажмите, чтобы узнать подробности."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Вы используете режим работы, который не зависит от страниц, с размером страницы 4 КБ. Гарантировать целостность программного обеспечения при этом невозможно. Любые данные, сохраненные на телефоне, пока загрузчик операционной системы разблокирован, могут быть под угрозой. Некоторые функции будут отключены, поэтому отдельные приложения могут не работать. Чтобы вернуться в производственный режим, заблокируйте загрузчик операционной системы. Настройки устройства при этом сбросятся. После успешного запуска Android отключите разблокировку загрузчика в разделе \"Для разработчиков\". Перепрошейте устройство, если оно работает нестабильно или Android на нем не запускается. Для этого используйте последние заводские образы с сайта <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> или <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a&gt. Затем нажмите \"Удалить данные с устройства\", \"Заблокировать загрузчик операционной системы\" и \"Принудительно прошить все разделы\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Используется режим работы, который не зависит от страниц, с размером страницы 16 кБ."</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Вы используете режим, независимый от размера страницы, с размером страницы 16 кБ. Гарантировать целостность программного обеспечения при этом невозможно. Пока разблокирован загрузчик операционной системы, любые данные, хранящиеся на телефоне, подвергаются риску. Некоторые функции будут отключены, поэтому отдельные приложения могут не работать. Чтобы вернуться в производственный режим, уменьшите размер страницы памяти до 4 кБ и заблокируйте загрузчик операционной системы. Нажмите, чтобы узнать подробности."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Вы используете режим, независимый от размера страницы, с размером страницы 16 кБ. Гарантировать целостность программного обеспечения при этом невозможно. Пока разблокирован загрузчик операционной системы, любые данные, хранящиеся на телефоне, подвергаются риску. Некоторые функции будут отключены, поэтому отдельные приложения могут не работать. Чтобы вернуться в производственный режим, уменьшите размер страницы памяти до 4 кБ и заблокируйте загрузчик операционной системы. Настройки устройства при этом будут сброшены. После запуска Android отключите разблокировку загрузчика в разделе \"Для разработчиков\". Перепрошейте устройство, если оно работает нестабильно или Android на нем не запускается. Для этого используйте последние заводские образы с сайта <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> или <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a>. Затем нажмите \"Удалить данные с устройства\", \"Заблокировать загрузчик операционной системы\" и \"Принудительно прошить все разделы\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Режим работы, который не зависит от страниц, с размером страницы 16 кБ."</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Ещё"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Обработчик отчетов об ошибках"</string>
@@ -5186,8 +5189,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Выберите, что будет показано на экране, когда планшет подключен к док-станции. Устройство может потреблять больше энергии, если включена заставка."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Настроить"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Настроить заставку \"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>\""</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Чтобы включить поддержку создания окон произвольной формы, требуется перезагрузка."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Чтобы принудительно включить режим рабочего стола на дополнительных экранах, требуется перезагрузка."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Чтобы включить устаревшую функцию для создания окон произвольной формы, требуется перезагрузка."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Чтобы изменить настройки поддержки окон произвольной формы, требуется перезагрузка."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Чтобы принудительно включить функцию для создания окон произвольной формы на дополнительных экранах, требуется перезагрузка."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Перезагрузить сейчас"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Перезагрузить позже"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Пространственное звучание"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 6c9f0b8..a923fc4 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"මුහුණ සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"මුහුණ, ඇඟිලි සලකුණ, සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"මුහුණ, ඇඟිලි සලකුණු, සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"හැඳුනුම් පරීක්ෂාව ක්රියාත්මක බැවින් මෙය අවශ්ය වේ"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"විකල්ප"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ප්රවේශ්යතාව"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"භෞතික යතුරු පුවරුව"</string>
- <string name="show_ime" msgid="4334255501724746849">"තිරය මත යතුරු පුවරුව භාවිත කරන්න"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"භෞතික යතුරු පුවරුව සක්රිය අතරතුර එය තිරය මත තබා ගන්න"</string>
<string name="bounce_keys" msgid="7419450970351743904">"පනින යතුරු"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"යතුරුපුවරුව <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms ඇතුළත එකම යතුර නැවත නැවතත් එබීම් නොසලකා හරියි"</string>
<string name="slow_keys" msgid="2891452895499690837">"මන්දගාමී යතුරු"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"කෙසේ වෙතත් ඉදිරියට යන්න"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"අවලංගු කරන්න"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"විශාලන සැකසීම්"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 ඇඟිල්ලකින් විශාලකය ගෙන යන්න"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"තිරය වටා ගමන් කිරීමට 1 ඇඟිල්ලක් අදින්න"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"එක ඇඟිල්ලක් ඇදීමෙන් විශාලන ප්රදේශය එහා මෙහා කරන්න."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ඇඟිලි දෙකක් ඇදීමෙන් විශාලන ප්රදේශය එහා මෙහා කරන්න."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"තිරයේ කොටසක් පමණක් විශාලනය කරන අතරේ ලබා ගත නොහැක"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"විශාලනය කිරීමට බොත්තමක් තට්ටු කරන්න"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"අන්තර්ගතය වඩා විශාල කිරීමට තිරය මත ඉක්මනින් විශාලනය කරන්න"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>විශාලනය වැඩි කිරීමට:</b><br/> {0,number,integer}. විශාලනය කිරීම ආරම්භ කිරීමට කෙටිමග භාවිත කරන්න<br/> {1,number,integer}. තිරය තට්ටු කරන්න<br/> {2,number,integer}. තිරය වටා යාමට ඇඟිලි 2කින් අදින්න<br/> {3,number,integer}. විශාලනය සීරුමාරු කිරීමට ඇඟිලි 2කින් පින්ච් කරන්න<br/> {4,number,integer}. විශාලනය කිරීම නතර කිරීමට කෙටි මග භාවිත කරන්න<br/><br/> <b>තාවකාලිකව විශාලනය වැඩි කිරීමට:</b><br/> {0,number,integer}. ඔබගේ විශාලන වර්ගය පූර්ණ තිරයට සකසා ඇති බවට සහතික කර ගන්න<br/> {1,number,integer}. විශාලනය කිරීම ආරම්භ කිරීමට කෙටිමග භාවිත කරන්න<br/> {2,number,integer}. තිරයේ ඕනෑම තැනක ස්පර්ශ කර අල්ලා ගන්න<br/> {3,number,integer}. තිරය වටා යාමට ඇඟිල්ල අදින්න<br/> {4,number,integer}. විශාලනය කිරීම නතර කිරීමට ඇඟිල්ල ඔසවන්න"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>විශාලනය වැඩි කිරීමට:</b><br/> {0,number,integer}. විශාලනය කිරීම ආරම්භ කිරීමට කෙටිමග භාවිත කරන්න<br/> {1,number,integer}. තිරය තට්ටු කරන්න<br/> {2,number,integer}. තිරය වටා යාමට ඇඟිලි 2කින් අදින්න<br/> {3,number,integer}. විශාලනය සීරුමාරු කිරීමට ඇඟිලි 2කින් පින්ච් කරන්න<br/> {4,number,integer}. විශාලනය නැවැත්වීමට කෙටිමඟ භාවිතා කරන්න<br/><br/> ඔබට තාවකාලිකව සහ තවත් විශාලනය කිරීමට ද හැක."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>විශාලනය වැඩි කිරීමට:</b><br/> {0,number,integer}. විශාලනය කිරීම ආරම්භ කිරීමට කෙටිමග භාවිත කරන්න<br/> {1,number,integer}. තිරය තට්ටු කරන්න<br/> {2,number,integer}. තිරය වටා ගමන් කිරීමට ඇඟිලි 1ක් හෝ 2ක් අදින්න<br/> {3,number,integer}. විශාලනය සීරුමාරු කිරීමට ඇඟිලි 2කින් පින්ච් කරන්න<br/> {4,number,integer}. විශාලනය නැවැත්වීමට කෙටිමඟ භාවිතා කරන්න<br/><br/> ඔබට තාවකාලිකව සහ තවත් විශාලනය කිරීමට ද හැක."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"විශාලනය ක්රියාත්මක කර ඇති විට, ඔබට ඔබේ තිරයේ දී විශාලනය වැඩි කළ හැකිය.\n\n"<b>"විශාලනය කිරීමට"</b>", විශාලනය ආරම්භ කර, අනතුරුව තිරයේ ඕනෑම තැනක තට්ටු කරන්න.\n"<ul><li>"අනුචලනය කිරීමට ඇඟිලි 2ක් හෝ ඊට වැඩි ගණනක් අදින්න"</li>\n<li>"විශාලනය සීරුමාරු කිරීමට ඇඟිලි 2ක් හෝ ඊට වැඩි ගණනක් කොනහන්න"</li></ul>\n\n<b>"තාවකාලිකව විශාලනය කිරීමට"</b>", විශාලනය ආරම්භ කර, අනතුරුව තිරයේ ඕනෑම තැනක ස්පර්ශ කර & අල්ලාගෙන සිටින්න.\n"<ul><li>"තිරය වටා චලනය කිරීමට අදින්න"</li>\n<li>"විශාලනය අඩු කිරීමට ඇඟිල්ල ඔසවන්න"</li></ul>\n\n"ඔබට යතුරු පුවරුවේ හෝ සංචාලන තීරුවේ දී විශාලනය වැඩි කළ නොහැකිය."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> න් <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> පිටුව"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ප්රවේශ්යතා බොත්තම් කෙටිමඟ"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"ප්රකාරයක් තනන්න"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"අභිරුචි"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"බාධා සීමා කරන්න"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"බාධා නොකරන්න ක්රියාත්මක කරන්න"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"එලාම සහ මාධ්ය හඬවල්වලට බාධා කළ හැකිය"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"කාලසටහනක් සකසන්න"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"කාල සටහන"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"පැය <xliff:g id="HOURS">%1$d</xliff:g>යි, විනාඩි <xliff:g id="MINUTES">%2$d</xliff:g>ක්"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"ස්වයංක්රීයව ක්රියාත්මක කරන්න"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"කාල සටහන"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"නිශ්චිත වේලාවලදී දුරකථනය නිහඬ කරන්න"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"බාධා නොකරන්න රීති සැකසීම"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"දැනුම් දීම විවෘත කරන්න"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"දැනුම්දීම කල් දැමීමට ඉඩ දෙන්න"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"යෙදුම් අයිකනයෙහි දැනුම් දීම් තිත"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"බුබුළු"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"බුබුළු"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"මෙම සංවාදය බුබුලු දමන්න"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"සියලු"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ප්රතික්ෂේප කිරිමට යෙදුම්වලට ඉඩ දෙන්න"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"බාධා කළ හැකි යෙදුම්"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"තවත් යෙදුම් තෝරන්න"</string>
@@ -4347,7 +4347,7 @@
<string name="system_navigation_title" msgid="4890381153527184636">"සංචාලනය ප්රකාරය"</string>
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"2-බොත්තම් සංචලනය"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"යෙදුම් මාරු කිරීමට, මුල් පිටු බොත්තම මත ස්වයිප් කරන්න. යෙදුම් සියල්ල බැලීමට, නැවතත් ස්වයිප් කරන්න. ආපසු යාමට, ආපසු බොත්තමට තට්ටු කරන්න."</string>
- <string name="emergency_settings_preference_title" msgid="6183455153241187148">"සුරක්ෂිතතාව & හදිසි අවස්ථාව"</string>
+ <string name="emergency_settings_preference_title" msgid="6183455153241187148">"සුරක්ෂිතතාව සහ හදිසි අවස්ථාව"</string>
<string name="emergency_dashboard_summary" msgid="401033951074039302">"හදිසි අවස්ථා SOS, වෛද්යමය තතු, ඇඟවීම්"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"අභින සංචලනය"</string>
<string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"නිවසට යාම සඳහා, තිරයෙහි පහළින් උඩට ස්වයිප් කරන්න. යෙදුම් මාරු කිරීම සඳහා, පහළින් උඩට ස්වයිප් කර, අල්ලා සිට, පසුව මුදා හරින්න. ආපසු යාම සඳහා, වම් හෝ දකුණු දාරයෙන් ස්වයිප් කරන්න."</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"කේස්"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"බැටරිය"</string>
<string name="settings_panel_title" msgid="346363079938069215">"සැකසීම් පුවරුව"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"වැඩතල ප්රකාරය බල කරන්න"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ද්විතීයික සංදර්ශන කෙරෙහි අත්හදා බැලීමේ වැඩතල ප්රකාරය බල කරන්න"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"අනියම් හැඩැති කවුළු සබල කරන්න"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"නිදහස් ආකෘති කවුළු සඳහා සහය සබල කරන්න."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"දෙවන සංදර්ශකය මත නිදහස් ආකෘති කවුළු සබල කරන්න"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"ද්විතියික සංදර්ශකය මත පමණක් නිදහස් ආකෘති කවුළු සබල කරන්න."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"බහු කවුළුව තුළ ප්රතිප්රමාණ කළ නොහැකි සබල කරන්න"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"බහු කවුළුව තුළ ප්රතිප්රමාණ කළ නොහැකි යෙදුම් තිබීමට ඉඩ දෙයි"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"force-dark ප්රතික්ෂේප කරන්න"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16KB සංවර්ධක විකල්පය භාවිත කිරීමට පෙර මෙම උපාංගයේ දත්ත කොටස ext4 වෙත පරිවර්තනය කළ යුතු ය. මෙම ප්රකාරයේ දී මෘදුකාංග අඛණ්ඩතාව සහතික කළ නොහැකි අතර, ආරම්භකය අගුළු හැර ඇති විට දුරකථනයේ ගබඩා කර ඇති ඕනෑම දත්තයක් අවදානමට ලක් විය හැක. 16KB විකල්පය සක්රිය කිරීමට මෙයින් පසු තවත් එක් නැවත පණගැන්වීමක් අවශ්ය වේ. ඔබ මෙම ප්රකාරයට පැමිණි පසු, ඔබට තනි නැවත පණ ගැන්වීමකින් 4KB සහ 16KB ප්රකාරය අතර මාරු විය හැක. මෙම ප්රකාර තුළ සමහර විශේෂාංග ක්රියාවිරහිත වනු ඇත, එබැවින් සමහර යෙදුම් ක්රියා නොකරනු ඇත. උපාංගය නිෂ්පාදන ප්රකාරයට ආපසු යාමට, ඔබට නැවත 4KB ප්රකාරයට මාරු වීමට අවශ්ය වන අතර පසුව උපාංගය කර්මාන්තශාලා යළි සකසන ආරම්භකය අගුළු දැමිය යුතු ය. උපාංගය සාර්ථකව Android සමග ආරම්භ වූ පසු, සංවර්ධක විකල්ප තුළ OEM අගුළු හැරීම ක්රියාවිරහිත කරන්න. උපාංගය මකා දමන අතර තහවුරු කිරීමෙන් පසු ගොනු පද්ධතිය ext4 වෙත වෙනස් කරනු ඇත. මෙය සම්පූර්ණ වූ පසු, කරුණාකර නැවත 16KB සබල කිරීමට ආපසු එන්න."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"සියලු දත්ත මකන්න"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ext4 වෙත දත්ත කොටස් යළි ෆෝමැට් කිරීම සහ පිස දැමීම අසමත් විය."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"ආරම්භකය අගුළු ඇරීම අවශ්යයි"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"මෙම උපාංගයට 16KB සංවර්ධක විකල්පය භාවිත කිරීමට පෙර ආරම්භකය අගුළු හැර තිබිය යුතු ය. මෙම ප්රකාරයේ දී මෘදුකාංග අඛණ්ඩතාව සහතික කළ නොහැකි අතර, ආරම්භකය අගුළු හැර ඇති විට දුරකථනයේ ගබඩා කර ඇති ඕනෑම දත්තයක් අවදානමට ලක් විය හැක. 16KB ප්රකාරය සක්රිය කරන විට සියලුම පරිශීලක දත්ත සහ සැකසුම් මකා දමනු ලැබේ. ආරම්භකය අගුළු හැරීමෙන් පසු, 16KB විකල්පය සක්රිය කිරීමට නැවත පණ ගැන්වීම් දෙකක් අවශ්ය වේ. ඔබ මෙම ප්රකාරයට පැමිණි පසු, ඔබට තනි නැවත පණ ගැන්වීමකින් 4KB සහ 16KB ප්රකාරය අතර මාරු විය හැක. මෙම ප්රකාර තුළ සමහර විශේෂාංග ක්රියාවිරහිත වනු ඇත, එබැවින් සමහර යෙදුම් ක්රියා නොකරනු ඇත. උපාංගය නිෂ්පාදන ප්රකාරයට ආපසු යාමට, ඔබට නැවත 4KB ප්රකාරයට මාරු කිරීමට අවශ්ය වන අතර පසුව OEM/අගුළු ආරම්භකය (මෙම කර්මාන්තශාලාව යළි සකසන) අගුළු දැමීම අවශ්ය වේ. කරුණාකර ආරම්භකය අගුළු ඇර නැවත උත්සාහ කරන්න. <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> හි දී ඔබට මෙය කරන ආකාරය ගැන උපදෙස් බැලිය හැක"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4KB පිටු-දෘෂ්ටික ප්රකාරය භාවිත කරමින්"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"ඔබ සිටින්නේ පිටු-දෘෂ්ටික ප්රකාරයේ 4KB ප්රකාරයේ ය. මෙම ප්රකාරයේ දී මෘදුකාංග අඛණ්ඩතාව සහතික කළ නොහැකි අතර, ආරම්භකය අගුළු හැර ඇති විට දුරකථනයේ ගබඩා කර ඇති ඕනෑම දත්තයක් අවදානමට ලක් විය හැක. මෙම ප්රකාර තුළ සමහර විශේෂාංග ක්රියාවිරහිත වනු ඇත, එබැවින් සමහර යෙදුම් ක්රියා නොකරනු ඇත. නිෂ්පාදන ප්රකාරය නැවත ඇතුල් කිරීම සඳහා, ඔබ උපාංගයේ ආරම්භකය අගුළු දැමිය යුතු ය. වැඩිදුර කියවීමට තට්ටු කරන්න."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"ඔබ සිටින්නේ පිටු-දෘෂ්ටික ප්රකාරයේ 4KB ප්රකාරයේ ය. මෙම ප්රකාරයේ දී මෘදුකාංග අඛණ්ඩතාව සහතික කළ නොහැකි අතර, ආරම්භකය අගුළු හැර ඇති විට දුරකථනයේ ගබඩා කර ඇති ඕනෑම දත්තයක් අවදානමට ලක් විය හැක. මෙම ප්රකාර තුළ සමහර විශේෂාංග ක්රියාවිරහිත වනු ඇත, එබැවින් සමහර යෙදුම් ක්රියා නොකරනු ඇත. නිෂ්පාදන ප්රකාරය නැවත ඇතුල් කිරීම සඳහා, ඔබ උපාංගයේ ආරම්භකය අගුළු දැමිය යුතු ය. මෙමඟින් උපාංගයට නැවත කර්මාන්තශාලා යළි සැකසීම සිදු කරන අතර එය නිෂ්පාදන සැකසුම් වෙත ප්රතිසාධනය කරයි. උපාංගය සාර්ථකව Android සමග ආරම්භ වූ පසු, සංවර්ධක විකල්ප තුළ OEM අගුළු හැරීම ක්රියාවිරහිත කරන්න. උපාංගය Android වෙත පණ ගැන්වීමට අපොහොසත් වුවහොත් හෝ අස්ථායී නම්, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> වෙතින් නවතම කර්මාන්තශාලා පින්තූර සමග උපාංගය නැවත ෆ්ලෑෂ් කර; \'උපාංගය පිස දමන්න\', \'අගුළු ආරම්භකය\' සහ \'සියලුම කොටස් ෆ්ලෑෂ් කිරීමට බල කරන්න\' තෝරන්න."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16KB පිටු-දෘෂ්ටික ප්රකාරය භාවිත කරමින්"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"ඔබ සිටින්නේ පිටු-දෘෂ්ටික ප්රකාරයේ 16KB ප්රකාරයේ ය. මෙම ප්රකාරයේ මෘදුකාංග අඛණ්ඩතාව සහතික කළ නොහැකි අතර, ආරම්භකය අගුලු හැර ඇති විට දුරකථනයේ ගබඩා කර ඇති ඕනෑම දත්තක් අවදානමට ලක් වේවි. මෙම ප්රකාර තුළ සමහර විශේෂාංග අබල වෙයි, එබැවින් සමහර යෙදුම් ක්රියා නොකරයි. නිෂ්පාදන ප්රකාරයට නැවත ඇතුළු වීමට, ඔබ 4KB ප්රකාරයට ආපසු මාරු කර උපාංගයේ ආරම්භකය අගුළු දැමිය යුතු ය. වැඩිදුර කියවීමට තට්ටු කරන්න."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"ඔබ සිටින්නේ පිටු-දෘෂ්ටික ප්රකාරයේ 16KB ප්රකාරයේ ය. මෙම ප්රකාරයේ මෘදුකාංග අඛණ්ඩතාව සහතික කළ නොහැකි අතර, ආරම්භකය අගුලු හැර ඇති විට දුරකථනයේ ගබඩා කර ඇති ඕනෑම දත්තක් අවදානමට ලක් වේවි. මෙම ප්රකාර තුළ සමහර විශේෂාංග අබල වෙයි, එබැවින් සමහර යෙදුම් ක්රියා නොකරයි. නිෂ්පාදන ප්රකාරයට නැවත ඇතුළු වීමට, ඔබ 4KB ප්රකාරයට ආපසු මාරු කර උපාංගයේ ආරම්භකය අගුළු දැමිය යුතු ය. මෙමඟින් උපාංගයට නැවත කර්මාන්තශාලා යළි සැකසීම සිදු කරන අතර එය නිෂ්පාදන සැකසුම් වෙත ප්රතිසාධනය කරයි. උපාංගය සාර්ථකව Android සමග ආරම්භ වූ පසු, සංවර්ධක විකල්ප තුළ OEM අගුලු හැරීම අබල කරන්න. උපාංගය Android වෙත පණ ගැන්වීමට අපොහොසත් වුවහොත් හෝ අස්ථායී නම්, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> වෙතින් නවතම කර්මාන්තශාලා පින්තූර සමග උපාංගය නැවත ෆ්ලෑෂ් කර; \'උපාංගය පිස දමන්න\', \'අගුළු ආරම්භකය\' සහ \'සියලුම කොටස් ෆ්ලෑෂ් කිරීමට බල කරන්න\' තෝරන්න."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB පිටු-දෘෂ්ටික ප්රකාරය"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"තව කියවන්න"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"දෝෂ වාර්තා හසුරුවනය"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"ඔබගේ ටැබ්ලටය ඈඳා ඇති විට ඔබ ඔබගේ තිරය මත දකිනු ඇති දේ තෝරන්න. තිර සුරැකුමක් භාවිත කරන විට ඔබගේ උපාංගය ශක්තිය වැඩියෙන් භාවිත කළ හැකිය."</string>
<string name="customize_button_title" msgid="1110284655990203359">"අභිරුචිකරණය කරන්න"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> අභිරුචිකරණය කරන්න"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"නිදහස් ආකෘති සහාය සබල කිරීමට නැවත පණ ගැන්වීමක් අවශ්ය වේ."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ද්විතීයික සංදර්ශකවල ඩෙස්ක්ටොප් ප්රකාරය බල කිරීමට නැවත පණ ගැන්වීමක් අවශ්ය වේ."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"ලෙගසි නිදහස් ආකෘති කවුළු සහාය සබල කිරීමට නැවත පණ ගැන්වීමක් අවශ්ය වේ."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"නිදහස් ආකෘති කවුළු සහාය වෙනස් කිරීමට නැවත පණ ගැන්වීමක් අවශ්ය වේ."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"ද්විතියික සංදර්ශක මත නිදහස් ආකෘති කවුළුව බල කිරීමට නැවත පණගැන්වීමක් අවශ්ය වේ."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"දැන් නැවත පණ ගන්වන්න"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"පසුව නැවත පණ ගන්වන්න"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"අවකාශීය ශ්රව්ය"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 2fab112..79ee2df 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Je to potrebné, pretože je zapnutá kontrola totožnosti"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Možnosti"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Dostupnosť"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fyzická klávesnica"</string>
- <string name="show_ime" msgid="4334255501724746849">"Používať klávesnicu na obrazovke"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Ponechať na obrazovke, keď je aktívna fyzická klávesnica"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Klávesy jedného stlačenia"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Klávesnica ignoruje rýchle opakované stlačenia rovnakého klávesa rýchlosťou do <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Pomalé klávesy"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Aj tak pokračovať"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Zrušiť"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nastavenia priblíženia"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Lupu presúvajte jedným prstom"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Po obrazovke sa pohybujte presúvaním jedného prsta"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Jedným prstom presuňte oblasť zväčšenia."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Dvoma prstami presuňte oblasť zväčšenia."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nie je k dispozícii iba pri zväčšovaní časti obrazovky"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Na priblíženie klepnite na tlačidlo"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Obrazovku si môžete rýchlo priblížiť, aby bol obsah väčší"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Priblíženie:</b><br/> {0,number,integer}. Skratkou spustite zväčšenie.<br/> {1,number,integer}. Klepnite na obrazovku.<br/> {2,number,integer}. Pohybujte sa po obrazovke presúvaním dvoch prstov.<br/> {3,number,integer}. Priblíženie upravte stiahnutím či roztiahnutím dvoch prstov.<br/> {4,number,integer}. Zväčšenie ukončíte skratkou.<br/><br/> <b>Dočasné priblíženie:</b><br/> {0,number,integer}. Skontrolujte, či je typ zväčšenia nastavený na celú obrazovku.<br/> {1,number,integer}. Skratkou spustite zväčšenie.<br/> {2,number,integer}. Pridržte ľubovoľné miesto na obrazovke.<br/> {3,number,integer}. Pohybujte sa po obrazovke presúvaním prsta.<br/> {4,number,integer}. Zväčšenie ukončíte zdvihnutím prsta."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Ak chcete priblížiť:</b><br/> {0,number,integer}. Skratkou spustite zväčšenie.<br/> {1,number,integer}. Klepnite na obrazovku.<br/> {2,number,integer}. Posúvajte sa po obrazovke presúvaním dvoch prstov.<br/> {3,number,integer}. Priblíženie upravte stiahnutím či roztiahnutím dvoch prstov.<br/> {4,number,integer}. Zväčšenie zastavíte pomocou skratky.<br/><br/> Okrem toho môžete krátkodobo priblížiť a vykonávať ďalšie akcie."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Ak chcete priblížiť:</b><br/> {0,number,integer}. Skratkou spustite zväčšenie.<br/> {1,number,integer}. Klepnite na obrazovku.<br/> {2,number,integer}. Posúvajte sa po obrazovke presúvaním jedného alebo dvoch prstov.<br/> {3,number,integer}. Priblíženie upravte stiahnutím či roztiahnutím dvoch prstov.<br/> {4,number,integer}. Zväčšenie zastavíte pomocou skratky.<br/><br/> Okrem toho môžete krátkodobo priblížiť a vykonávať ďalšie akcie."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Keď je priblíženie zapnuté, môžete si zväčšiť obsah obrazovky.\n\n"<b>"Urobíte to tak"</b>", že spustíte priblíženie a klepnete kamkoľvek na obrazovku.\n"<ul><li>"Zobrazenie posuniete presunutím dvoch alebo viacerých prstov."</li>\n<li>"Priblíženie upravíte stiahnutím dvoch alebo viacerých prstov."</li></ul>\n\n<b>"Ak chcete obsah priblížiť krátkodobo"</b>", spustite priblíženie a pridržte ľubovoľné miesto na obrazovke.\n"<ul><li>"Po obrazovke prechádzate presunutím."</li>\n<li>"Oddialite zdvihnutím prsta."</li></ul>\n\n"Nemôžete priblížiť klávesnicu ani navigačný panel."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. stránka z <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Skratka tlačidla dostupnosti"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Vytvorte režim"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Vlastné"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Obmedzenie vyrušení"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Zapnite režim bez vyrušení"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Budíky a zvuky médií môžu vyrušiť"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Nastavte si plán"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Naplánovať"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Zapínať automaticky"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Plán"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Stlmiť telefón v určitý čas"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Nastavenie pravidiel režimu bez vyrušení"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"otvoriť upozornenie"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Povoliť stlmenie upozornení"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Bodka upozornení na ikone aplikácie"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Balíky upozornení"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubliny"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubliny"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Zobrazovať túto konverzáciu v bubline"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Všetky"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Povoľte aplikáciám prekonávať nastavenia"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikácie, ktoré môžu vyrušiť"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Vyberte ďalšie aplikácie"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Puzdro"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batéria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel s nastaveniami"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Vynútiť režim pracovnej plochy"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Vynútiť experimentálny režim pracovnej plochy na sekundárnych obrazovkách"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Povolenie meniteľných okien"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Povoľte podporu pre meniteľné okná."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Povoliť meniteľné okná na druhej obrazovke"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Povoľte meniteľné okná iba na sekundárnej obrazovke."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Povoliť v režime viac. okien aplik. bez možn. zmeny veľkosti"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Povoliť v režime viacerých okien aplikácie bez možnosti zmeny veľkosti"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Presadiť tmavý režim"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Dátový oddiel tohto zariadenia je potrebné pred použitím možnosti 16 kB pre vývojárov konvertovať na ext4. V tomto režime nie je možné zaručiť integritu softvéru a všetky dáta uložené v telefóne môžu byť počas odomknutia zavádzacieho programu systému ohrozené. Aktivácia možnosti 16 kB si potom vyžiada ešte jedno reštartovanie. Keď budete v tomto režime, môžete prepínať medzi režimom 4 kB a 16 kB jedným reštartovaním. Niektoré funkcie budú v týchto režimoch vypnuté, takže niektoré aplikácie nemusia fungovať. Ak chcete zariadenie vrátiť do ostrého režimu, musíte prepnúť späť na režim 4 kB a potom uzamknúť zavádzací program systému, čím sa v zariadení obnovia výrobné nastavenia. Po úspešnom zapnutí Androidu v zariadení vypnite odomknutie OEM v sekcii Pre vývojárov. Zariadenie sa trvalo vymaže a systém súborov sa po potvrdení zmení na ext4. Po dokončení tohto kroku sa vráťte a znova zapnite režim 16 kB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Vymazať všetky údaje"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Nepodarilo sa zmeniť formát ani trvale vymazať oddiel dát na ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Vyžaduje sa odomknutie zavádzacieho programu systému"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Toto zariadenie musí mať pred použitím možnosti pre vývojárov 16 kB odomknutý zavádzací program systému. V tomto režime nie je možné zaručiť integritu softvéru a všetky dáta uložené v telefóne môžu byť počas odomknutia zavádzacieho programu systému ohrozené. Pri aktivácii režimu 16 kB sa vymažú všetky dáta a nastavenia používateľa. Po odomknutí zavádzacieho programu systému si aktivácia možnosti 16 kB vyžiada dve reštartovania. Keď budete v tomto režime, môžete prepínať medzi režimom 4 kB a 16 kB jedným reštartovaním. Niektoré funkcie budú v týchto režimoch vypnuté, takže niektoré aplikácie nemusia fungovať. Ak chcete zariadenie vrátiť do ostrého režimu, musíte prepnúť späť na režim 4 kB a potom uzamknúť OEM alebo zavádzací program systému, čím sa v zariadení obnovia výrobné nastavenia. Odomknite zavádzací program systému a skúste to znova. Postup, ako to vykonať, nájdete na <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Používa sa režim 4 kB, ktorý nezohľadňuje stránkovanie"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Ste v režime 4 kB, ktorý nezohľadňuje stránkovanie. V tomto režime nie je možné zaručiť integritu softvéru a všetky dáta uložené v telefóne môžu byť počas odomknutia zavádzacieho programu systému ohrozené. Niektoré funkcie budú v týchto režimoch vypnuté, takže niektoré aplikácie nemusia fungovať. Ak chcete znova vstúpiť do ostrého režimu, musíte uzamknúť zavádzací program systému zariadenia. Klepnutím zobrazíte ďalšie informácie."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Ste v režime 4 kB, ktorý nezohľadňuje stránkovanie. V tomto režime nie je možné zaručiť integritu softvéru a všetky dáta uložené v telefóne môžu byť počas odomknutia zavádzacieho programu systému ohrozené. Niektoré funkcie budú v týchto režimoch vypnuté, takže niektoré aplikácie nemusia fungovať. Ak chcete znova vstúpiť do ostrého režimu, musíte uzamknúť zavádzací program systému zariadenia. Tým sa v zariadení znova obnovia výrobné nastavenia na nastavenia ostrého režimu. Po úspešnom zapnutí zariadenia do Androidu vypnite odomknutie OEM v sekcii Pre vývojárov. Ak sa zariadeniu nepodarí spustiť Android alebo bude nestabilné, znova nainštalujte najnovšie výrobné obrazy systému z webu <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> alebo prejdite na <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> a vyberte Wipe Device (Trvale vymazať zariadenie), Lock Bootloader (Uzamknúť zavádzací program systému) a Force Flash all partitions (Vynútiť inštaláciu obrazu systému vo všetkých oddieloch)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Používa sa režim 16 kB, ktorý nezohľadňuje stránkovanie"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Ste v režime 16 kB, ktorý nezohľadňuje stránkovanie. V tomto režime nie je možné zaručiť integritu softvéru a všetky dáta uložené v telefóne môžu byť počas odomknutia zavádzacieho programu systému ohrozené. Niektoré funkcie budú v týchto režimoch vypnuté, takže určité aplikácie nemusia fungovať. Ak chcete znova prejsť do ostrého režimu, musíte prepnúť späť do režimu 4 kB a potom uzamknúť zavádzací program systému zariadenia. Klepnutím zobrazíte ďalšie informácie."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Ste v režime 16 kB, ktorý nezohľadňuje stránkovanie. V tomto režime nie je možné zaručiť integritu softvéru a všetky dáta uložené v telefóne môžu byť počas odomknutia zavádzacieho programu systému ohrozené. Niektoré funkcie budú v týchto režimoch vypnuté, takže určité aplikácie nemusia fungovať. Ak chcete znova prejsť do ostrého režimu, musíte prepnúť späť do režimu 4 kB a potom uzamknúť zavádzací program systému zariadenia. Tým sa v zariadení znova obnovia výrobné nastavenia na nastavenia ostrého režimu. Po úspešnom zapnutí zariadenia do Androidu vypnite odomknutie OEM v sekcii Pre vývojárov. Ak sa zariadeniu nepodarí spustiť Android alebo bude nestabilné, znova nainštalujte najnovšie výrobné obrazy systému z webu <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> alebo prejdite na <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> a vyberte Vymazať zariadenie, Uzamknúť zavádzací program systému a Vynútiť inštaláciu obrazu systému vo všetkých oddieloch."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Režim 16 kB nezohľadňujúci stránkovanie"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Ďalšie informácie"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Obsluha hlásení chýb"</string>
@@ -5190,8 +5188,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Vyberte, čo sa bude zobrazovať na vašej obrazovke po vložení tabletu do doku. Zariadenie môže pri používaní šetriča obrazovky spotrebúvať viac energie."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Prispôsobiť"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Prispôsobiť <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Zapnutie podpory funkcie Freeform vyžaduje reštartovanie."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Vynútenie režimu pracovnej plochy na sekundárnych obrazovkách vyžaduje reštartovanie."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Povolenie podpory starých meniteľných okien vyžaduje reštart."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Zmena podpory meniteľných okien vyžaduje reštart."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Vynútenie meniteľných okien na sekundárnych obrazovkách vyžaduje reštart."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reštartovať"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reštartovať neskôr"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Priestorový zvuk"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 0f871be..e0fcf4b 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Obraz in <xliff:g id="WATCH">%s</xliff:g> sta dodana"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Obraz, prstni odtis in <xliff:g id="WATCH">%s</xliff:g> so dodani"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Obraz, prstni odtisi in <xliff:g id="WATCH">%s</xliff:g> so dodani"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"To je potrebno, ker je preverjanje identitete vklopljeno"</string>
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Odklepanje storitve Remote Authenticator"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Ura je dodana"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nastavitev ure"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Možnosti"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Dostopnost"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fizična tipkovnica"</string>
- <string name="show_ime" msgid="4334255501724746849">"Uporabi zaslonsko tipkovnico"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Obdrži na zaslonu, tudi ko je fizična tipkovnica aktivna."</string>
<string name="bounce_keys" msgid="7419450970351743904">"Zaznava večkratnih pritiskov tipk"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Tipkovnica prezre hitro ponovljene pritiske iste tipke v <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Daljši pritisk tipk"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vseeno nadaljuj"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Prekliči"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nastavitve povečave"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Premikanje lupe z enim prstom"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Po zaslonu se pomikate z vlečenjem prsta."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Območje povečave premikajte z vlečenjem enega prsta."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Območje povečave premikajte z vlečenjem dveh prstov."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ni na voljo pri povečavi samo dela zaslona"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Če želite povečati, se dotaknite gumba"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Hitro povečajte zaslon za povečavo vsebine."</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Če želite povečati:</b><br/> {0,number,integer}. Z bližnjico vklopite povečavo.<br/> {1,number,integer}. Dotaknite se zaslona.<br/> {2,number,integer}. Po zaslonu se pomikajte z vlečenjem dveh prstov.<br/> {3,number,integer}. Stopnjo povečave prilagodite tako, da prsta razmaknete ali primaknete.<br/> {4,number,integer}. Z bližnjico izklopite povečavo.<br/><br/> <b>Povečavo začasno vklopite tako:</b><br/> {0,number,integer}. Prepričajte se, da je vrsta povečave nastavljena na celozaslonski način.<br/> {1,number,integer}. Z bližnjico vklopite povečavo.<br/> {2,number,integer}. Dotaknite se poljubne točke na zaslonu in jo pridržite.<br/> {3,number,integer}. Po zaslonu se pomikajte z vlečenjem prsta.<br/> {4,number,integer}. Dvignite prst, da izklopite povečavo."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Če želite povečati:</b><br/> {0,number,integer}. Z bližnjico vklopite povečavo.<br/> {1,number,integer}. Dotaknite se zaslona.<br/> {2,number,integer}. Po zaslonu se pomikajte z vlečenjem dveh prstov.<br/> {3,number,integer}. Stopnjo povečave prilagodite tako, da prsta razmaknete ali primaknete.<br/> {4,number,integer}. Z bližnjico izklopite povečavo.<br/><br/> Povečavo lahko tudi začasno povečate in drugo."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Če želite povečati:</b><br/> {0,number,integer}. Z bližnjico vklopite povečavo.<br/> {1,number,integer}. Dotaknite se zaslona.<br/> {2,number,integer}. Po zaslonu se pomikajte z vlečenjem enega ali dveh prstov.<br/> {3,number,integer}. Stopnjo povečave prilagodite tako, da prsta razmaknete ali primaknete.<br/> {4,number,integer}. Z bližnjico izklopite povečavo.<br/><br/> Povečavo lahko tudi začasno povečate in drugo."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Ko je povečava vklopljena, lahko povečate prikaz na zaslonu.\n\n"<b>"Če želite povečati prikaz"</b>", zaženite povečavo, nato pa se dotaknite poljubnega mesta na zaslonu.\n"<ul><li>"Povlecite z dvema ali več prsti po zaslonu, če se želite pomikati."</li>\n<li>"Primaknite ali razmaknite dva ali več prstov, če želite prilagoditi povečavo."</li></ul>\n\n<b>"Če želite začasno povečati prikaz"</b>", zaženite povečavo ter se dotaknite poljubnega mesta na zaslonu in ga pridržite.\n"<ul><li>"Povlecite, če se želite premikati po zaslonu."</li>\n<li>"Dvignite prst, če želite zmanjšati povečavo."</li></ul>\n\n"Povečava ni mogoča na tipkovnici ali v vrstici za krmarjenje."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. stran od <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Bližnjica gumba za dostopnost"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Ustvarjanje načina"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Po meri"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Omejitev prekinitev"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Vklop načina »Ne moti«"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmi in zvoki predstavnosti lahko preglasijo"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Nastavitev razporeda"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Razpored"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Samodejni vklop"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Časovni razpored"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Utišanje telefona ob določenih urah"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Nastavitev pravil za način »Ne moti«"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"odpiranje obvestila"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Omogoči prelaganje obvestil"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Obvestilna pika na ikoni aplikacije"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Svežnji obvestil"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Oblački"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Oblački"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Prikaži ta pogovor v oblačku"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Vse"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Aplikacijam dovoli preglasitev"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije, ki lahko preglasijo"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Izberite več aplikacij"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Ovitek"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterija"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Podokno nastavitev"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Vsili namizni način"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Vsili poskusni namizni način na sekundarnih zaslonih."</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Omogoči okna svobodne oblike"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Omogoči podporo za okna svobodne oblike."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Omogoči okna svobodne oblike na drugem zaslonu"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Omogoči okna svobodne oblike samo na sekundarnem zaslonu."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Omogoči okna nespremenljive velikosti v načinu z več okni"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Omogoča uporabo aplikacij brez možnosti spreminjanja velikosti v načinu z več okni."</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Preglasi vsiljenje temnega načina"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Preden začnete uporabljati 16-kilobajtno možnost za razvijalce, je treba podatkovno particijo te naprave pretvoriti v sistem ext4. Celovitosti programske opreme v tem načinu ni mogoče zajamčiti in vsi podatki, shranjeni v telefonu, medtem ko je zagonski nalagalnik odklenjen, so morda ogroženi. Aktiviranje 16-kilobajtne možnosti bo po tem vnovičnem zagonu terjalo še enega. Ko ste v tem načinu, lahko preklapljate med 4-kilobajtnim in 16-kilobajtnim načinom z enim vnovičnim zagonom. V teh načinih bodo nekatere funkcije onemogočene, zato nekatere aplikacije morda ne bodo delovale. Če želite napravo povrniti v način za splošno razpoložljivost, morate preklopiti nazaj na 4-kilobajtni način in zakleniti zagonski nalagalnik, s čimer ponastavite napravo na tovarniške nastavitve. Ko se naprava uspešno zažene v sistemu Android, v možnostih za razvijalce onemogočite odklepanje OEM. Podatki v napravi bodo izbrisani in podatkovni sistem bo po potrditvi spremenjen v sistem ext4. Ko se to dokonča, se vrnite in znova omogočite 16-kilobajtni način."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Izbriši vse podatke"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Formatiranje v sistem ext4 in brisanje particije s podatki ni uspelo."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Potrebno je odklepanje zagonskega nalagalnika"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Preden začnete uporabljati 16-kilobajtno možnost za razvijalce, morate v tej napravi odkleniti zagonski nalagalnik. Celovitosti programske opreme v tem načinu ni mogoče zajamčiti in vsi podatki, shranjeni v telefonu, medtem ko je zagonski zaganjalnik odklenjen, so morda ogroženi. Vsi podatki uporabnika in nastavitve bodo pri aktiviranju 16-kilobajtnega načina izbrisani. Ko je zagonski nalagalnik odklenjen, aktiviranje 16-kilobajtne možnosti terja dva vnovična zagona. Ko ste v tem načinu, lahko preklapljate med 4-kilobajtnim in 16-kilobajtnim načinom z enim vnovičnim zagonom. V teh načinih bodo nekatere funkcije onemogočene, zato nekatere aplikacije morda ne bodo delovale. Če želite napravo povrniti v način za splošno razpoložljivost, morate preklopiti nazaj na 4-kilobajtni način in nato napravo zakleniti z zaklepanjem OEM oziroma v napravi zakleniti zagonski nalagalnik (s čimer se sproži ponastavitev na tovarniške nastavitve). Odklenite zagonski nalagalnik in poskusite znova. Navodila za ta postopek so na voljo na <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Uporaba 4-kilobajtnega načina, neodvisnega od velikosti strani"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Ste v 4-kilobajtnem načinu, neodvisnem od velikosti strani. Celovitosti programske opreme v tem načinu ni mogoče zajamčiti in vsi podatki, shranjeni v telefonu, medtem ko je zagonski nalagalnik odklenjen, so morda ogroženi. V teh načinih bodo nekatere funkcije onemogočene, zato nekatere aplikacije morda ne bodo delovale. Če želite znova v način za splošno razpoložljivost, morate zakleniti zagonski nalagalnik naprave. Dotaknite se, če želite prebrati več."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Ste v 4-kilobajtnem načinu, neodvisnem od velikosti strani. Celovitosti programske opreme v tem načinu ni mogoče zajamčiti in vsi podatki, shranjeni v telefonu, medtem ko je zagonski nalagalnik odklenjen, so morda ogroženi. V teh načinih bodo nekatere funkcije onemogočene, zato nekatere aplikacije morda ne bodo delovale. Če želite znova v način za splošno razpoložljivost, morate zakleniti zagonski nalagalnik naprave. S tem znova ponastavite napravo na tovarniške nastavitve in jo povrnete na nastavitve za splošno razpoložljivost. Ko se naprava uspešno zažene v sistemu Android, v možnostih za razvijalce onemogočite odklepanje OEM. Če se napravi ne uspe zagnati v sistemu Android ali ni stabilna, jo znova posodobite z najnovejšimi tovarniškimi slikami z naslova <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ali uporabite <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> in izberite možnosti »Wipe Device«, »Lock Bootloader« in »Force Flash all partitions.«"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Uporaba 16-kilobajtnega načina, neodvisnega od velikosti strani"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Ste v 16-kilobajtnem načinu načina, neodvisnega od velikosti strani. Celovitosti programske opreme v tem načinu ni mogoče zajamčiti in vsi podatki, shranjeni v telefonu, medtem ko je zagonski nalagalnik odklenjen, so morda ogroženi. V teh načinih bodo nekatere funkcije onemogočene, zato nekatere aplikacije morda ne bodo delovale. Če se želite vrniti v način za splošno razpoložljivost, morate preklopiti nazaj na 4-kilobajtni način, nato pa morate zakleniti zagonski nalagalnik naprave. Dotaknite se, če želite prebrati več."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Ste v 16-kilobajtnem načinu načina, neodvisnega od velikosti strani. Celovitosti programske opreme v tem načinu ni mogoče zajamčiti in vsi podatki, shranjeni v telefonu, medtem ko je zagonski nalagalnik odklenjen, so morda ogroženi. V teh načinih bodo nekatere funkcije onemogočene, zato nekatere aplikacije morda ne bodo delovale. Če se želite vrniti v način za splošno razpoložljivost, morate preklopiti nazaj na 4-kilobajtni način, nato pa morate zakleniti zagonski nalagalnik naprave. S tem napravo znova ponastavite na tovarniške nastavitve in jo povrnete na nastavitve za splošno razpoložljivost. Ko se naprava uspešno zažene v sistemu Android, v možnostih za razvijalce onemogočite odklepanje OEM. Če se napravi ne uspe zagnati v sistemu Android ali ni stabilna, jo znova posodobite z najnovejšimi tovarniškimi slikami z naslova <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ali uporabite <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> in izberite možnosti »Wipe Device« (Izbriši podatke v napravi), »Lock Bootloader« (Zakleni zagonski nalagalnik) in »Force Flash all partitions« (Vsili posodobitev vseh particij)."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16-kilobajtni način za neodvisno velikost strani"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Več o tem"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Rutina za obravnavo poročila o napakah"</string>
@@ -5190,8 +5188,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Izberite, kaj bo prikazano na zaslonu, ko je tablični računalnik priklopljen na nosilec. Naprava bo med uporabo ohranjevalnika zaslona morda porabljala več energije."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Prilagodi"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Prilagajanje ohranjevalnika zaslona <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Če želite omogočiti podporo za svobodno obliko, morate znova zagnati napravo."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Če želite vsiliti namizni način na sekundarnih zaslonih, morate znova zagnati napravo."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Če želite omogočiti podporo za okna svobodne oblike starejše različice, morate znova zagnati napravo."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Če želite spremeniti podporo za okna svobodne oblike, morate znova zagnati napravo."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Če želite vsiliti okna svobodne oblike na sekundarnih zaslonih, morate znova zagnati napravo."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Znova zaženi"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Znova zaženi pozneje"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorski zvok"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 9568e81..07cd2ea 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -77,8 +77,7 @@
<string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Cilësimet e pajisjes ndihmëse për dëgjimin"</string>
<string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Shkurtore, përputhshmëria me aparatet e dëgjimit"</string>
<string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Paravendosja"</string>
- <!-- no translation found for bluetooth_hearing_aids_presets_empty_list_message (4240241268432643259) -->
- <skip />
+ <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Nuk ka paravendosje të programuara nga audiologu yt"</string>
<string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Paravendosja nuk mund të përditësohej"</string>
<string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Dalja e audios"</string>
<string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Rreth daljes së audios"</string>
@@ -385,7 +384,7 @@
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Si funksionon"</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="5909924864816776516">"\"Shkyçja me gjurmën e gishtit\" krijon një model unik të gjurmës sate të gishtit për të verifikuar që je ti. Për ta krijuar këtë model të gjurmës së gishtit gjatë konfigurimit, duhet t\'i regjistrosh nga pozicione të ndryshme imazhet e gjurmës sate të gishtit."</string>
<string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_2" msgid="3493356605815124807">"\"Shkyçja me gjurmën e gishtit\" krijon një model unik të gjurmës së gishtit të fëmijës tënd për të verifikuar që është ai. Për ta krijuar këtë model të gjurmës së gishtit gjatë konfigurimit, ajo duhet t\'i regjistrojë nga pozicione të ndryshme imazhet e gjurmës sate të gishtit."</string>
- <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_6" msgid="5314031490467481499">"Për rezultate më të mira, përdor një mbrojtës ekrani që është i certifikuar si i \"Prodhuar për Google\". Me mbrojtës të tjerë ekrani, gjurma jote e gishtit mund të mos funksionojë."</string>
+ <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_6" msgid="5314031490467481499">"Për rezultatet më të mira, përdor një mbrojtës ekrani që është i certifikuar me \"Prodhuar për Google\". Me mbrojtës të tjerë ekrani, gjurma jote e gishtit mund të mos funksionojë."</string>
<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>
@@ -412,6 +411,8 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Fytyra dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Fytyra, gjurma e gishtit dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Fytyra, gjurmët e gishtave dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
+ <!-- no translation found for mandatory_biometrics_prompt_description (5461737411954922392) -->
+ <skip />
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Shkyçja me vërtetuesin në distancë"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Ora u shtua"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfiguro orën tënde"</string>
@@ -1222,8 +1223,7 @@
<string name="color_mode_option_automatic" msgid="2281217686509980870">"Me përshtatje"</string>
<string name="brightness" msgid="6216871641021779698">"Niveli i ndriçimit"</string>
<string name="auto_brightness_title" msgid="4239324728760986697">"Ndriçimi me përshtatje"</string>
- <!-- no translation found for auto_brightness_content_description_title (237734599617077375) -->
- <skip />
+ <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Rreth ndriçimit me përshtatje"</string>
<string name="auto_brightness_description" msgid="6807117118142381193">"Ndriçimi i ekranit tënd do t\'i përshtatet automatikisht mjedisit dhe aktiviteteve të tua. Mund ta lëvizësh rrëshqitësin manualisht për të ndihmuar ndriçimin me përshtatje që të mësojë preferencat e tua."</string>
<string name="auto_brightness_summary_on" msgid="2748088951224387004">"Aktiv"</string>
<string name="auto_brightness_summary_off" msgid="8077066192887677956">"Joaktiv"</string>
@@ -1929,8 +1929,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Opsionet"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Qasshmëria"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Tastiera fizike"</string>
- <string name="show_ime" msgid="4334255501724746849">"Përdor tastierën në ekran"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Mbaje në ekran ndërsa tastiera fizike është aktive"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Tastet e kërcimit"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Tastiera i shpërfill shtypjet e shpejta të përsëritura të të njëjtit tast brenda <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Tastet e ngadalta"</string>
@@ -2132,10 +2130,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vazhdo gjithsesi"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Anulo"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Cilësimet e zmadhimit"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Zhvendos zmadhuesin me 1 gisht"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Zvarrit 1 gisht për të lëvizur nëpër ekran"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Zhvendos zonë e zmadhimit duke zvarritur një gisht."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Zhvendos zonën e zmadhimit duke zvarritur dy gishta."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nuk ofrohet kur zmadhohet vetëm një pjesë e ekranit"</string>
@@ -2159,10 +2155,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Trokit te një buton për të zmadhuar"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zmadho me shpejtësi në ekran për ta bërë përmbajtjen më të madhe"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Për të zmadhuar:</b><br/> {0,number,integer}. Përdor shkurtoren për të filluar zmadhimin<br/> {1,number,integer}. Trokit në ekran<br/> {2,number,integer}. Zvarrit 2 gishta për të lëvizur nëpër ekran<br/> {3,number,integer}. Bashko 2 gishta për të rregulluar zmadhimin<br/> {4,number,integer}. Përdor shkurtoren për të ndaluar zmadhimin<br/><br/><b>Për ta zmadhuar përkohësisht:</b><br/> {0,number,integer}. Sigurohu që lloji i zmadhimit të jetë caktuar në ekran të plotë<br/> {1,number,integer}. Përdor shkurtoren për të filluar zmadhimin<br/> {2,number,integer}. Prek dhe mbaj shtypur diku në ekran<br/> {3,number,integer}. Zvarrit gishtin për të lëvizur nëpër ekran<br/> {4,number,integer}. Ngrije gishtin për të ndaluar zmadhimin"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Për të zmadhuar:</b><br/> {0,number,integer}. Përdor shkurtoren për të filluar zmadhimin<br/> {1,number,integer}. Trokit në ekran<br/> {2,number,integer}. Zvarrit 2 gishta për të lëvizur nëpër ekran<br/> {3,number,integer}. Bashko 2 gishta për të rregulluar zmadhimin<br/> {4,number,integer}. Përdor shkurtoren për të ndaluar zmadhimin<br/><br/> Mund ta zmadhosh gjithashtu përkohësisht dhe më shumë."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Për të zmadhuar:</b><br/> {0,number,integer}. Përdor shkurtoren për të filluar zmadhimin<br/> {1,number,integer}. Trokit në ekran<br/> {2,number,integer}. Zvarrit 1 ose 2 gishta për të lëvizur nëpër ekran<br/> {3,number,integer}. Bashko 2 gishta për të rregulluar zmadhimin<br/> {4,number,integer}. Përdor shkurtoren për të ndaluar zmadhimin<br/><br/> Mund ta zmadhosh gjithashtu përkohësisht dhe më shumë."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kur aktivizohet zmadhimi, mund të zmadhosh mbi ekranin tënd.\n\n"<b>"Për të zmadhuar"</b>", nis zmadhimin, më pas trokit diku në ekran.\n"<ul><li>"Zvarrit 2 ose më shumë gishta për të lëvizur"</li>\n<li>"Afro 2 ose më shumë gishta për të rregulluar zmadhimin"</li></ul>\n\n<b>"Për të zmadhuar përkohësisht"</b>", nis zmadhimin dhe më pas prek dhe mbaj të shtypur diku në ekran.\n"<ul><li>"Zvarrit për të lëvizur nëpër ekran"</li>\n<li>"Ngri gishtin për të zvogëluar"</li></ul>\n\n"Nuk mund të zmadhosh te tastiera ose shiriti i navigimit."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Faqja <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> nga <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Shkurtorja e butonit të qasshmërisë"</string>
@@ -3382,6 +3376,10 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <!-- no translation found for zen_mode_new_title (4934720193004330740) -->
+ <skip />
+ <!-- no translation found for zen_mode_new_option_custom (1060993879440003341) -->
+ <skip />
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Kufizo ndërprerjet"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Aktivizo \"Mos shqetëso\""</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmet dhe tingujt e medias mund ta ndërpresin"</string>
@@ -3402,8 +3400,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Cakto një orar"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Orari"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> orë e <xliff:g id="MINUTES">%2$d</xliff:g> min."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Aktivizo automatikisht"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Orari"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Vendose telefonin në heshtje në kohë të caktuara"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Cakto rregullat për \"Mos shqetëso\""</string>
@@ -3547,6 +3544,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"hap njoftimin"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Lejo shtyrjen e njoftimeve"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Pika e njoftimit në ikonën e aplikacionit"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"Flluskat"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Flluskat"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Vendos bisedën në flluskë"</string>
@@ -3728,8 +3727,7 @@
<string name="notification_channels" msgid="1502969522886493799">"Kategoritë"</string>
<string name="notification_channels_other" msgid="18159805343647908">"Të tjera"</string>
<string name="no_channels" msgid="4716199078612071915">"Ky aplikacion nuk ka postuar asnjë njoftim"</string>
- <!-- no translation found for no_recent_channels (5068574296267584043) -->
- <skip />
+ <string name="no_recent_channels" msgid="5068574296267584043">"Shfaq kategoritë e papërdorura"</string>
<string name="app_settings_link" msgid="6725453466705333311">"Cilësime shtesë në aplikacion"</string>
<string name="show_unused_channels" msgid="4956292847964439078">"Shfaq kategoritë e papërdorura"</string>
<string name="hide_unused_channels" msgid="2019739275175707170">"Fshih kategoritë e papërdorura"</string>
@@ -3841,6 +3839,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Të gjitha"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Lejo aplikacionet ta anulojnë"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacionet që mund ta ndërpresin"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Zgjidh më shumë aplikacione"</string>
@@ -4865,8 +4865,14 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Kasa"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Paneli i \"Cilësimeve\""</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Detyro \"modalitetin e desktopit\""</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Detyro \"modalitetin e desktopit\" eksperimental në ekrane dytësore"</string>
+ <!-- no translation found for enable_desktop_mode (5644818402534562302) -->
+ <skip />
+ <!-- no translation found for enable_desktop_mode_summary (7606643229185242771) -->
+ <skip />
+ <!-- no translation found for force_desktop_mode (8292039809783522466) -->
+ <skip />
+ <!-- no translation found for force_desktop_mode_summary (6534513232678335875) -->
+ <skip />
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktivizo aplikacionet me madhësi jo të ndryshueshme në modalitetin me shumë dritare"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Lejon që aplikacionet me madhësi jo të ndryshueshme të shfaqen në modalitetin me shumë dritare"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Anulo detyrimin e errësimit"</string>
@@ -4934,17 +4940,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Ndarja e të dhënave të kësaj pajisjeje duhet të konvertohet në ext4 para se të përdoret opsioni i zhvilluesit 16 KB. Integriteti i softuerit nuk mund të garantohet në këtë modalitet dhe mund të rrezikohet çdo e dhënë e ruajtur në telefon kur ngarkuesi i fillimit është i shkyçur. Aktivizimi i opsioni 16 KB do të kërkojë një rinisje tjetër pas kësaj. Pasi të jesh në këtë modalitet, mund t\'i ndërrosh modalitetet 4 KB dhe 16 KB me vetëm një rinisje. Disa veçori do të çaktivizohen në këto modalitete, kështu që disa aplikacione mund të mos funksionojnë. Për ta kthyer pajisjen në modalitetin e prodhimit, do të duhet që të kthehesh përsëri në modalitetin 4 KB dhe të kyçësh më pas ngarkuesin e fillimit, i cili e rivendos pajisjen në gjendje fabrike. Pasi pajisja të niset me sukses në Android, çaktivizo shkyçjen e OEM-së tek \"Opsionet e zhvilluesit\". Pajisja do të pastrohet dhe sistemi i skedarëve do të ndryshohet në ext4 pas konfirmimit. Pasi të përfundojë kjo, kthehu për të aktivizuar përsëri 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Spastro të gjitha të dhënat"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Riformatimi dhe pastrimi i ndarjes së të dhënave në ext4 dështoi."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Kërkohet shkyçja e ngarkuesit të fillimit"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Kjo pajisje duhet ta ketë të shkyçur ngarkuesin e fillimit para se të përdoret opsioni i zhvilluesit 16 KB. Integriteti i softuerit nuk mund të garantohet në këtë modalitet dhe mund të rrezikohet çdo e dhënë e ruajtur në telefon kur ngarkuesi i fillimit është i shkyçur. Të gjitha të dhënat dhe cilësimet e përdoruesit do të pastrohen kur të aktivizohet modaliteti 16 KB. Kur të shkyçet ngarkuesi i fillimit, aktivizimi i opsionit 16 KB do të kërkojë dy rinisje. Pasi të jesh në këtë modalitet, mund t\'i ndërrosh modalitetet 4 KB dhe 16 KB me vetëm një rinisje. Disa veçori do të çaktivizohen në këto modalitete, kështu që disa aplikacione mund të mos funksionojnë. Për ta kthyer pajisjen në modalitetin e prodhimit, do të duhet që të kthehesh përsëri në modalitetin 4 KB dhe më pas të kyçësh OEM-në/ngarkuesin e fillimit (që e rivendos pajisjen në gjendje fabrike). Shkyçe ngarkuesin e fillimit dhe provo përsëri. Mund t\'i shikosh udhëzimet se si ta bësh këtë në <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Po përdor modalitetin 4 KB të pavarësisë nga madhësia e faqes"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Je në modalitetin 4 KB të modalitetit të pavarësisë nga madhësia e faqes. Integriteti i softuerit nuk mund të garantohet në këtë modalitet dhe mund të rrezikohet çdo e dhënë e ruajtur në telefon kur ngarkuesi i fillimit është i shkyçur. Disa veçori do të çaktivizohen në këto modalitete, kështu që disa aplikacione mund të mos funksionojnë. Për të hyrë përsëri në modalitetin e prodhimit, duhet të kyçësh ngarkuesin e fillimit të pajisjes. Trokit për të lexuar më shumë."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Je në modalitetin 4 KB të modalitetit të pavarësisë nga madhësia e faqes. Integriteti i softuerit nuk mund të garantohet në këtë modalitet dhe mund të rrezikohet çdo e dhënë e ruajtur në telefon kur ngarkuesi i fillimit është i shkyçur. Disa veçori do të çaktivizohen në këto modalitete, kështu që disa aplikacione mund të mos funksionojnë. Për të hyrë përsëri në modalitetin e prodhimit, duhet të kyçësh ngarkuesin e fillimit të pajisjes. Ky veprim do ta rivendosë pajisjen në gjendje fabrike dhe do ta restaurojë te cilësimet e prodhimit. Pasi pajisja të niset me sukses në Android, çaktivizo shkyçjen e OEM-së tek \"Opsionet e zhvilluesit\". Nëse pajisja nuk arrin të niset në Android ose është e paqëndrueshme, riinstalo në pajisje imazhet më të fundit të fabrikës nga <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ose përdor <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> dhe zgjidh \"Pastro pajisjen\", \"Kyç ngarkuesin e fillimit\" dhe \"Riinstalo me forcë të gjitha ndarjet\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Po përdor modalitetin 16 KB të pavarësisë nga madhësia e faqes"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Je në modalitetin 16 KB të modalitetit të pavarësisë nga madhësia e faqes. Integriteti i softuerit nuk mund të garantohet në këtë modalitet dhe mund të rrezikohet çdo e dhënë e ruajtur në telefon kur ngarkuesi i fillimit është i shkyçur. Disa veçori do të çaktivizohen në këto modalitete, kështu që disa aplikacione mund të mos funksionojnë. Për të hyrë përsëri në modalitetin e prodhimit, duhet të kthehesh përsëri në modalitetin 4 KB dhe më pas të kyçësh ngarkuesin e fillimit të pajisjes. Trokit për të lexuar më shumë."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Je në modalitetin 16 KB të modalitetit të pavarësisë nga madhësia e faqes. Integriteti i softuerit nuk mund të garantohet në këtë modalitet dhe mund të rrezikohet çdo e dhënë e ruajtur në telefon kur ngarkuesi i fillimit është i shkyçur. Disa veçori do të çaktivizohen në këto modalitete, kështu që disa aplikacione mund të mos funksionojnë. Për të hyrë përsëri në modalitetin e prodhimit, duhet të kthehesh përsëri në modalitetin 4 KB dhe më pas të kyçësh ngarkuesin e fillimit të pajisjes. Ky veprim do ta rivendosë pajisjen në gjendje fabrike dhe do ta restaurojë te cilësimet e prodhimit. Pasi pajisja të niset me sukses në Android, çaktivizo shkyçjen e OEM-së tek \"Opsionet e zhvilluesit\". Nëse pajisja nuk arrin të niset në Android ose është e paqëndrueshme, riinstalo në pajisje imazhet më të fundit të fabrikës nga <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> ose përdor <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> dhe zgjidh \"Pastro pajisjen\", \"Kyç ngarkuesin e fillimit\" dhe \"Riinstalo me forcë të gjitha ndarjet\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Modaliteti 16 KB i pavarësisë nga madhësia e faqes"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Lexo më shumë"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Administruesi i raportit të defekteve në kod"</string>
@@ -5191,8 +5194,12 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Zgjidh se çfarë do të shohësh në ekranin tënd kur tableti të jetë lidhur me stacionin. Pajisja jote mund të përdorë më shumë energji kur përdoret një mbrojtës ekrani."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Personalizo"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Të personalizosh <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Kërkohet të rindizet për të aktivizuar mbështetjen në formë të lirë."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Kërkohet të rindizet për të detyruar modalitetin e desktopit në ekranet dytësore."</string>
+ <!-- no translation found for reboot_dialog_enable_freeform_support (5526979569538289810) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_override_desktop_mode (1557714416232280288) -->
+ <skip />
+ <!-- no translation found for reboot_dialog_force_desktop_mode (3647484086248450029) -->
+ <skip />
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Rindize tani"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Rindize më vonë"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio hapësinore"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 622ea6a..dd03127 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додати су лице и <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додати су лице, отисак прста и <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додати су лице, отисци прстију и <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"То је потребно јер је укључена провера идентитета"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Опције"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Приступачност"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Физичка тастатура"</string>
- <string name="show_ime" msgid="4334255501724746849">"Користи тастатуру на екрану"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Задржава се на екрану док је физичка тастатура активна"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Дужи одзив тастера"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Тастатура занемарује брзе притиске истог тастера који се понављају у року од <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Спори тастери"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ипак настави"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Откажи"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Подешавања увећања"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Померите лупу 1 прстом"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Превлачите 1 прст за кретање по екрану"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Померајте област за увећање превлачењем једног прста."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Померајте област за увећање превлачењем два прста."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Није доступно када се увећава само део екрана"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Додирните дугме да бисте зумирали"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Брзо увећајте екран да би садржај био већи"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Да бисте увећали:</b><br/> {0,number,integer}. Користите пречицу да бисте покренули увећање<br/> {1,number,integer}. Додирните екран<br/> {2,number,integer}. Превлачите помоћу 2 прста да бисте се кретали по екрану<br/> {3,number,integer}. Скупите 2 прста да бисте прилагодили зумирање<br/> {4,number,integer}. Користите пречицу да бисте зауставили увећање<br/><br/> <b>Да бисте привремено увећали:</b><br/> {0,number,integer}. Уверите се да је тип увећања подешен на цео екран<br/> {1,number,integer}. Користите пречицу да бисте покренули увећање<br/> {2,number,integer}. Додирните и задржите било који део екрана<br/> {3,number,integer}. Превлачите прст да бисте се кретали по екрану<br/> {4,number,integer}. Подигните прст да бисте зауставили увећање"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Да бисте увећали:</b><br/> {0,number,integer}. Користите пречицу да бисте покренули увећање<br/> {1,number,integer}. Додирните екран<br/> {2,number,integer}. Превлачите помоћу 2 прста да бисте се кретали по екрану<br/> {3,number,integer}. Скупите 2 прста да бисте прилагодили зумирање<br/> {4,number,integer}. Користите пречицу да бисте зауставили увећање<br/><br/> Можете привремено да зумирате и друго."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Да бисте увећали:</b><br/> {0,number,integer}. Користите пречицу да бисте покренули увећање<br/> {1,number,integer}. Додирните екран<br/> {2,number,integer}. Превлачите 1 или 2 прста да бисте се кретали по екрану <br/> {3,number,integer}. Скупите 2 прста да бисте прилагодили зумирање<br/> {4,number,integer}. Користите пречицу да бисте зауставили увећање<br/><br/> Можете привремено да зумирате и друго."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Када је увећање укључено, можете да увећате екран.\n\n"<b>"Да бисте зумирали"</b>", покрените увећање, па додирните било који део екрана.\n"<ul><li>"Превлачите помоћу 2 или више прстију да бисте померали приказ"</li>\n<li>"Скупите 2 или више прстију да бисте прилагодили зумирање"</li></ul>\n\n<b>"За привремено зумирање"</b>" покрените увећање, па додирните и задржите било који део екрана.\n"<ul><li>"Превлачите да бисте се кретали по екрану"</li>\n<li>"Подигните прст да бисте умањили приказ"</li></ul>\n\n"Не можете да увећавате тастатуру или траку за навигацију."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. страница од <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Пречица за дугме Приступачност"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Направите режим"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Прилагођено"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ограничите прекиде"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Укључите режим Не узнемиравај"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Звукови аларма и медија могу да прекину"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Подесите распоред"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Распоред"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> с, <xliff:g id="MINUTES">%2$d</xliff:g> мин"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Аутоматски укључи"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Распоред"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Утишајте телефон у одређено време"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Подесите правила за режим „Не узнемиравај“"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"отварање обавештења"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Омогући одлагање обавештења"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Тачка за обавештења на икони апликације"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Скупови обавештења"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Облачићи"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Облачићи"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Прикажи ову конверзацију у облачићу"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Све"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дозволи да апликације занемарују"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Апликације које могу да прекидају"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Изаберите још апликација"</string>
@@ -4347,7 +4346,7 @@
<string name="system_navigation_title" msgid="4890381153527184636">"Режим навигације"</string>
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Навигација помоћу 2 дугмета"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Да бисте прешли са једне апликације на другу, превуците нагоре на дугмету Почетак. Да бисте видели све апликације, поново превуците нагоре. Да бисте се вратили, додирните дугме Назад."</string>
- <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Безбедност и хитни случајеви"</string>
+ <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Лична безбедност и хитни случајеви"</string>
<string name="emergency_dashboard_summary" msgid="401033951074039302">"Хитна помоћ, медицинске информације, обавештења"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Навигација помоћу покрета"</string>
<string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"Да бисте отишли на почетни екран, превуците нагоре од дна екрана. Да бисте прешли са једне апликације на другу, превуците нагоре од дна екрана, задржите, па пустите. Да бисте се вратили назад, превуците од леве или десне ивице."</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Футрола"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батерија"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Табла са подешавањима"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Наметни режим рачунара"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Намеће експериментални режим рачунара на секундарним екранима"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Омогући прозоре произвољног формата"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Омогућава подршку за прозоре произвољног формата."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Омогући прозоре произвољног формата на 2. екрану"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Омогућава прозоре произвољног формата само на секундарном екрану."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Омогући апликације непромењиве величине у више прозора"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Омогућава да апликације непромењиве величине буду у више прозора"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Замени функцију наметања тамне теме"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Да би овај уређај могао да користи опцију за програмера од 16 kB, његова партиција података треба да се конвертује у ext4. У овом режиму не може да се гарантује интегритет софтвера, па подаци који сe чувају на телефону док је покретачки програм откључан могу да буду угрожени. Активирање опције од 16 kB захтева још једно рестартовање. Када будете у овом режиму, моћи ћете да прелазите са режима од 4 kB на режим од 16 kB и обратно уз једно рестартовање. Неке функције су онемогућене у овим режимима, што значи да неке апликације можда неће радити. Да бисте уређај вратили на производни режим, треба да га вратите на режим од 4 kB и закључате покретачки програм, чиме ће се уређај ресетовати на фабричка подешавања. Када се на уређају укључи Android, онемогућите OEM откључавање у Опцијама за програмера. Уређај ће после потврде бити обрисан, а систем фајлова промењен на ext4. Када се то заврши, вратите се овде да бисте поново омогућили режим од 16 kB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Обриши све податке"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Реформатирање и брисање партиције података на ext4 није успело."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Треба да откључате покретачки програм"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Да би овај уређај могао да користи опцију за програмера од 16 kB, на њему треба да буде откључан покретачки програм. У овом режиму не може да се гарантује интегритет софтвера, па могу бити угрожени подаци који сe чувају на телефону док је покретачки програм откључан. Када се активира режим од 16 kB, сви подаци и подешавања корисника ће бити избрисани. Када се покретачки програм откључа, активирање опције од 16 kB захтева два рестартовања. Када будете у овом режиму, моћи ћете да прелазите са режима од 4 kB на режим од 16 kB и обратно уз једно рестартовање. Неке функције су онемогућене у овим режимима, што значи да неке апликације можда неће радити. Да бисте уређај вратили на производни режим, треба да га вратите на режим од 4 kB и закључате OEM или покретачки програм на уређају (што ће га ресетовати на фабричка подешавања). Откључајте покретачки програм и пробајте поново. Упутства како то да урадите потражите на <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Користите режим од 4 kB независан од величине странице"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Користите режим од 4 kB у оквиру режима независног од величине странице. У овом режиму не може да се гарантује интегритет софтвера, па подаци који сe чувају на телефону док је покретачки програм откључан могу да буду угрожени. Неке функције су онемогућене у овим режимима, што значи да неке апликације можда неће радити. Да бисте уређај поново вратили у производни режим, морате да закључате покретачки програм уређаја. Додирните да бисте прочитали више."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Користите режим од 4 kB у оквиру режима независног од величине странице. У овом режиму не може да се гарантује интегритет софтвера, па могу бити угрожени подаци који сe чувају на телефону док је покретачки програм откључан. Неке функције су онемогућене у овим режимима, што значи да неке апликације можда неће радити. Да бисте уређај поново вратили у производни режим, морате да закључате покретачки програм уређаја. То ће поново ресетовати уређај на фабричка подешавања и вратити га на производна подешавања. Када се на уређају укључи Android, онемогућите OEM откључавање у Опцијама за програмера. Ако је уређај нестабилан или се на њему не укључи Android, поново га флешујте користећи најновије слике са фабричким подешавањима са <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>. Можете и да користите <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> и изаберете Обриши уређај, Закључај покретачки програм и Принудно флешуј све партиције."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Користите режим од 16 kB независан од величине странице"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Користите режим од 16 KB у оквиру режима независног од величине странице. У овом режиму не може да се гарантује интегритет софтвера, па могу бити угрожени подаци који сe чувају на телефону док је покретачки програм откључан. Неке функције су онемогућене у овим режимима, што значи да неке апликације можда неће радити. Да бисте уређај поново вратили у производни режим, морате да га вратите на режим од 4 KB и закључате покретачки програм уређаја. Додирните да бисте прочитали више."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Користите режим од 16 KB у оквиру режима независног од величине странице. У овом режиму не може да се гарантује интегритет софтвера, па могу бити угрожени подаци који сe чувају на телефону док је покретачки програм откључан. Неке функције су онемогућене у овим режимима, што значи да неке апликације можда неће радити. Да бисте уређај поново вратили у производни режим, морате да га вратите на режим од 4 KB и закључате покретачки програм уређаја. То ће поново ресетовати уређај на фабричка подешавања и вратити га на производна подешавања. Када се на уређају укључи Android, онемогућите OEM откључавање у Опцијама за програмера. Ако је уређај нестабилан или се на њему не укључи Android, поново га флешујте користећи најновије слике са фабричким подешавањима са <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>. Можете и да користите <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> и изаберете Обриши уређај, Закључај покретачки програм и Принудно флешуј све партиције."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Режим од 16 kB независан од величине странице"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Прочитајте више"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Обрађивач извештаја о грешци"</string>
@@ -5189,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Изаберите шта ћете видети на екрану када је таблет на базној станици. Уређај може да троши више енергије када се користи чувар екрана."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Прилагоди"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Прилагодите <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Морате да рестартујете да бисте омогућили подршку за слободан облик."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Морате да рестартујете да бисте принудно омогућили режим за рачунаре на секундарним екранима."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Морате да рестартујете да бисте омогућили подршку за застареле прозоре произвољног формата."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Морате да рестартујете да бисте променили подршку за прозоре произвољног формата."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Морате да рестартујете да бисте принудно омогућили прозоре произвољног формата на секундарном екрану."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Рестартуј"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Рестартуј касније"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Просторни звук"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 818da4b..89fca7b 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Detta behövs eftersom identitetskontroll är på"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Alternativ"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Tillgänglighet"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fysiskt tangentbord"</string>
- <string name="show_ime" msgid="4334255501724746849">"Använd skärmtangentbord"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Ha kvar det på skärmen när det fysiska tangentbordet används"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Studsande tangenter"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Tangentbordet ignorerar snabbt upprepade tryck på samma tangent inom <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Långsamma tangenter"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Fortsätt ändå"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Avbryt"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Inställningar för förstoring"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Flytta förstoringsglaset med ett finger"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Navigera på skärmen: dra med ett finger."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Flytta förstoringsområdet genom att dra med ett finger."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Flytta förstoringsområdet genom att dra med två fingrar."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Inte tillgänglig när bara förstoringsdelen av skärmen visas"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tryck på en knapp för att zooma"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zooma in snabbt så att innehåll på skärmen förstoras"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Så här zoomar du in:</b><br/> {0,number,integer}. Starta förstoring med genvägen<br/> {1,number,integer}. Tryck på skärmen<br/> {2,number,integer}. Navigera på skärmen genom att dra med två fingrar<br/> {3,number,integer}. Nyp med två fingrar för att justera zoomnivån<br/> {4,number,integer}. Stoppa förstoringen med genvägen<br/><br/> <b>Så här zoomar du in tillfälligt:</b><br/> {0,number,integer}. Kontrollera att förstoringstyp är inställd som helskärm<br/> {1,number,integer}. Starta förstoring med genvägen<br/> {2,number,integer}. Tryck länge var som helst på skärmen<br/> {3,number,integer}. Navigera på skärmen genom att dra med fingret<br/> {4,number,integer}. Stoppa förstoringen genom att lyfta fingret"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Så här zoomar du in:</b><br/> {0,number,integer}. Starta förstoring med kortkommando<br/> {1,number,integer}. Tryck på skärmen<br/> {2,number,integer}. Navigera på skärmen genom att dra med två fingrar<br/> {3,number,integer}. Nyp med två fingrar för att justera zoomnivån<br/> {4,number,integer}. Stoppa förstoring med kortkommando<br/><br/> Du kan även zooma in tillfälligt med mera."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Så här zoomar du in:</b><br/> {0,number,integer}. Starta förstoring med kortkommando<br/> {1,number,integer}. Tryck på skärmen<br/> {2,number,integer}. Navigera på skärmen genom att dra med ett finger eller två fingrar<br/> {3,number,integer}. Nyp med två fingrar för att justera zoomnivån<br/> {4,number,integer}. Stoppa förstoring med kortkommando<br/><br/> Du kan även zooma in tillfälligt med mera."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"När förstoring har aktiverats kan du zooma in på skärmen.\n\n"<b>"Om du vill zooma"</b>" aktiverar du förstoring och trycker var som helst på skärmen.\n"<ul><li>"Scrolla genom att dra med minst två fingrar."</li>\n<li>"Justera zoomen genom att nypa med minst två fingrar."</li></ul>\n\n<b>"Om du vill zooma tillfälligt"</b>" aktiverar du förstoring och trycker länge var som helst på skärmen.\n"<ul><li>"Flytta runt på skärmen genom att dra."</li>\n<li>"Zooma ut genom att lyfta fingret."</li></ul>\n\n"Det går inte att zooma in på tangentbordet eller navigeringsfältet."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Sida <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> av <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Kortkommando med tillgänglighetsknappen"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Skapa ett läge"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Anpassa"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Begränsa antalet avbrott"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Aktivera Stör ej."</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarm och medieljud får avbryta"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Ställ in ett schema"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schemalägg"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Aktivera automatiskt"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schemalägg"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Stäng av mobilljud vid vissa tider"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Ange regler för Stör ej"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"öppna avisering"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Tillåt att aviseringar snoozas"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Aviseringsprick på appikonen"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Aviseringspaket"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bubblor"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubblor"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Visa en bubbla för konversationen"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alla"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tillåt att appar åsidosätter funktionen"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Appar som får störa dig"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Välj fler appar"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Fodral"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panelen Inställningar"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Tvinga fram skrivbordsläge"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Tvinga fram experimentellt skrivbordsläge på sekundära skärmar"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktivera frihandsfönster"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Aktivera stöd för frihandsfönster."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Aktivera frihandsfönster på en sekundär skärm"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Aktivera frihandsfönster på endast en sekundär skärm"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktivera appar vars storlek inte kan ändras i flerfönsterläge"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Låter appar vars storlek inte kan ändras finnas i flerfönsterläge"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Åsidosätter tvingat mörkt läge"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Du måste konvertera enhetens datapartition till ext4 innan du använder utvecklaralternativet för 16 kB. Det går inte att garantera mjukvarans integritet i detta läge och all data som lagras på telefonen när starthanteraren är olåst kan vara i farozonen. Om du aktiverar 16 kB-alternativet måste du starta om en gång till efteråt. När läget är aktiverat kan du byta fram och tillbaka mellan 4 kB och 16 kB genom att starta om. En del funktioner inaktiveras i dessa lägen. Det kan innebära att vissa program inte fungerar. Om du vill återställa produktionsläget på enheten måste du byta tillbaka till 4 kB-läget och låsa starthanteraren. Enheten återställs då till standardinställningarna. När enheten startas med Android ska du inaktivera OEM-upplåsning i utvecklaralternativen. Enheten rensas och filsystemet ändras till ext4 när du har bekräftat. När det är klart kommer du tillbaka för att aktivera 16 kB igen."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Radera all data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Det gick inte att formatera om och rensa datapartionen till ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Starthanteraren måste låsas upp"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Starthanteraren måste vara upplåst på den här enheten innan du kan använda utvecklaralternativet för 16 kB. Det går inte att garantera mjukvarans integritet i detta läge och all data som lagras på telefonen när starthanteraren är olåst kan vara i farozonen. Alla användaruppgifter och inställningar rensas när 16 kB-läget aktiveras. När starthanteraren har låsts upp krävs två omstarter för att aktivera 16 kB-alternativet. När läget är aktiverat kan du byta fram och tillbaka mellan 4 kB och 16 kB genom att starta om. En del funktioner inaktiveras i dessa lägen. Det kan innebära att vissa program inte fungerar. Om du vill återställa produktionsläget på enheten måste du byta tillbaka till 4 kB-läget och låsa OEM/starthanteraren. Enheten återställs då till standardinställningarna. Lås upp starthanteraren och försök igen. Du hittar anvisningar om hur du gör detta på <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4 kB-versionen av det sidagnostiska läget används"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Du använder 4 kB-versionen av det sidagnostiska läget. Det går inte att garantera mjukvarans integritet i detta läge och all data som lagras på telefonen när starthanteraren är olåst kan vara i farozonen. En del funktioner inaktiveras i dessa lägen. Det kan innebära att vissa program inte fungerar. Om du vill återgå till produktionsläget måste du låsa starthanteraren på enheten. Tryck för att läsa mer."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Du använder 4 kB-versionen av det sidagnostiska läget. Det går inte att garantera mjukvarans integritet i detta läge och all data som lagras på telefonen när starthanteraren är olåst kan vara i farozonen. En del funktioner inaktiveras i dessa lägen. Det kan innebära att vissa program inte fungerar. Om du vill återgå till produktionsläget måste du låsa starthanteraren på enheten. Detta återställer enheten till produktionsinställningarna igen. När enheten startas med Android ska du inaktivera OEM-upplåsning i utvecklaralternativen. Om det inte går att starta enheten med Android eller om den inte är stabil flashar du om enheten med de senaste systemavbildningarna från <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> och väljer Rensa enhet, Lås starthanteraren och Tvångsflasha alla partitioner."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16 kB-versionen av det sidagnostiska läget används"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Du använder 16 kB-versionen av det sidagnostiska läget. Det går inte att garantera mjukvarans integritet i detta läge och all data som lagras på telefonen när starthanteraren är olåst kan vara i farozonen. En del funktioner inaktiveras i dessa lägen. Det kan innebära att vissa program inte fungerar. Om du vill återgå till produktionsläget måste du byta tillbaka till 4 kB-läget och sedan låsa starthanteraren på enheten. Tryck för att läsa mer."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Du använder 16 kB-versionen av det sidagnostiska läget. Det går inte att garantera mjukvarans integritet i detta läge och all data som lagras på telefonen när starthanteraren är olåst kan vara i farozonen. En del funktioner inaktiveras i dessa lägen. Det kan innebära att vissa program inte fungerar. Om du vill återgå till produktionsläget måste du byta tillbaka till 4 kB-läget och sedan låsa starthanteraren på enheten. Detta återställer enheten till produktionsinställningarna igen. När enheten startas med Android ska du inaktivera OEM-upplåsning i utvecklaralternativen. Om det inte går att starta enheten med Android eller om den inte är stabil flashar du om enheten med de senaste systemavbildningarna från <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> och väljer Rensa enhet, Lås starthanteraren och Tvångsflasha alla partitioner."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 kB-versionen av det sidagnostiska läget"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Läs mer"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Felrapportshanterare"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Välj vad som ska visas på skärmen när surfplattan har dockats. Energiförbrukningen kan öka när en skärmsläckare används."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Anpassa"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Anpassa <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Du måste starta om enheten för att aktivera stöd för flytande läge."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Du måste starta om enheten om du vill tvinga fram datorläge på sekundära skärmar."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Du måste starta om enheten för att aktivera stöd för äldre frihandsfönster."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Du måste starta om enheten för att ändra stödet för frihandsfönster."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Du måste starta om enheten för att tvinga frihandsfönster på sekundära skärmar."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Starta om nu"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Starta om senare"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Rumsligt ljud"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 474eaef..cbdbb39 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Hatua hii inahitajika kwa kuwa kipengele cha Kukagua Utambulisho kimewashwa"</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>
@@ -615,7 +616,7 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"Weka programu"</b>\n"Weka programu ambazo ungependa ziwe za faragha katika sehemu yako ya faragha"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"Kumbuka"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"Programu huacha kufanya kazi ukifunga sehemu yako ya faragha"</b>\n"Ukifunga sehemu yako ya faragha, programu zilizo katika sehemu hiyo zitaacha kufanya kazi na hazitakutumia arifa"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Sehemu za faragha hazifai kwa programu zinazohitaji kutumika chinichini au kutuma arifa muhimu, kama vile programu za matibabu. Hii ni kwa sababu arifa na shughuli za chinichini hukomeshwa wakati sehemu yako imefungwa.\n\nProgramu zilizo kwenye sehemu yako ya faragha hazitaonekana kwenye kidhibiti cha ruhusa, dashibodi ya faragha na mipangilio mingine wakati sehemu yako ya faragha imefungwa.\n\nSehemu yako ya faragha haiwezi kuhamishiwa kwenye kifaa kipya. Utahitaji kuweka mipangilio ya sehemu nyingine ya faragha iwapo ungependa kuitumia kwenye kifaa kingine.\n\nYeyote anayeunganisha kifaa chako na kompyuta au anayeweka programu hatari kwenye kifaa chako huenda akafikia sehemu yako ya faragha."</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"Sehemu za faragha hazifai kwa programu zinazohitaji kutumika chinichini au kutuma arifa muhimu, kama vile programu za matibabu. Hii ni kwa sababu arifa na shughuli za chinichini hukomeshwa wakati sehemu yako ya faragha imefungwa.\n\nProgramu zilizo kwenye sehemu yako ya faragha hazitaonekana kwenye kidhibiti cha ruhusa, dashibodi ya faragha na mipangilio mingine wakati sehemu yako ya faragha imefungwa.\n\nSehemu yako ya faragha haiwezi kuhamishiwa kwenye kifaa kipya. Utahitaji kuweka mipangilio ya sehemu nyingine ya faragha iwapo ungependa kuitumia kwenye kifaa kingine.\n\nYeyote anayeunganisha kifaa chako na kompyuta au anayeweka programu hatari kwenye kifaa chako huenda akafikia sehemu yako ya faragha."</string>
<string name="private_space_settings_footer_text" msgid="3742468470394835356">"Sehemu za faragha hazifai kwa programu zinazohitaji kutumika chinichini au kutuma arifa muhimu, kama vile programu za matibabu. Hii ni kwa sababu arifa na shughuli za chinichini hukomeshwa wakati sehemu yako imefungwa.\n\nProgramu zilizo kwenye sehemu yako ya faragha hazitaonekana kwenye kidhibiti cha ruhusa, dashibodi ya faragha na mipangilio mingine wakati sehemu ya faragha imefungwa.\n\nSehemu yako ya faragha haiwezi kurejeshwa kwenye kifaa kipya. Utahitaji kuweka mipangilio ya sehemu nyingine ya faragha iwapo ugependa kuitumia kwenye kifaa kingine.\n\nYeyote anayeunganisha kifaa chako na kompyuta au kuweka programu hasidi kwenye kifaa chako huenda akafikia sehemu yako ya faragha."</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"Pata maelezo kuhusu sehemu ya faragha"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"Hatua hii itachukua dakika chache"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Chaguo"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Ufikivu"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Kibodi halisi"</string>
- <string name="show_ime" msgid="4334255501724746849">"Tumia kibodi ya skrini"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Ionyeshe kwenye skrini wakati kibodi halisi inatumika"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Vitufe vinavyoduta"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Kibodi hupuuza vitendo vya kurudia kubonyeza kitufe kimoja haraka na mara nyingi ndani ya milisekunde <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g>"</string>
<string name="slow_keys" msgid="2891452895499690837">"Vitufe vya polepole"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Endelea tu"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Ghairi"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Mipangilio ya ukuzaji"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Sogeza kikuzaji ukitumia kidole 1"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Buruta kidole 1 ili usogeze kwenye skrini"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Sogeza sehemu ya ukuzaji kwa kuburuta kwa kidole kimoja."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Sogeza sehemu ya ukuzaji kwa kuburuta kwa vidole viwili."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Haipatikani unapokuza tu sehemu fulani ya skrini"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Gusa kitufe ili ukuze"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Vuta karibu kwa haraka kwenye skrini ili ufanye maudhui yawe makubwa"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Ili uvute karibu:</b><br/> {0,number,integer}. Tumia njia ya mkato ili uanze kukuza<br/> {1,number,integer}. Gusa skrini<br/> {2,number,integer}. Buruta vidole viwili ili usogeze kwenye skrini<br/> {3,number,integer}. Bana kwa vidole viwili ili ubadilishe ukuzaji<br/> {4,number,integer}. Tumia njia ya mkato ili uache kukuza<br/><br/><b>Ili uvute karibu kwa muda:</b><br/> {0,number,integer}. Hakikisha umechagua aina ya ukuzaji kuwa skrini nzima<br/> {1,number,integer}. Tumia njia ya mkato ili uanze kukuza<br/> {2,number,integer}. Gusa na ushikilie mahali popote kwenye skrini<br/> {3,number,integer}. Buruta kidole ili usogeze kwenye skrini<br/> {4,number,integer}. Inua kidole ili uache kukuza"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Ili uvute karibu:</b><br/> {0,number,integer}. Tumia njia ya mkato ili uanze ukuzaji<br/> {1,number,integer}. Gusa skrini<br/> {2,number,integer}. Buruta vidole 2 ili usogeze kwenye skrini<br/> {3,number,integer}. Bana ukitumia vidole 2 ili ukuze vinginevyo<br/> {4,number,integer}. Tumia njia ya mkato ili uache kukuza<br/><br/> Unaweza pia kuvuta karibu kwa muda mfupi na zaidi."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Ili uvute karibu:</b><br/> {0,number,integer}. Tumia njia ya mkato ili uanze ukuzaji<br/> {1,number,integer}. Gusa skrini<br/> {2,number,integer}. Buruta kidole 1 au 2 ili usogeze kwenye skrini<br/> {3,number,integer}. Bana ukitumia vidole 2 ili ukuze vinginevyo<br/> {4,number,integer}. Tumia njia ya mkato ili uache kukuza<br/><br/> Unaweza pia kuvuta karibu kwa muda mfupi na zaidi."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Ukiwasha ukuzaji, unaweza kuvuta karibu kwenye skrini yako.\n\n"<b>"Ili ukuze"</b>", anzisha ukuzaji kisha uguse mahali popote kwenye skrini.\n"<ul><li>"Buruta vidole 2 au zaidi ili usogeze"</li>\n<li>"Bana vidole 2 au zaidi ili urekebishe ukuzaji"</li></ul>\n\n<b>"Ili ukuze kwa muda"</b>", anzisha ukuzaji kisha uguse na ushikilie mahali popote kwenye skrini.\n"<ul><li>"Buruta ili usogeze kwenye skrini"</li>\n<li>"Inua kidole ili usogeze mbali"</li></ul>\n\n"Huwezi kuvuta karibu kwenye kibodi au sehemu ya viungo muhimu."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Ukurasa wa <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> kati ya <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Njia ya mkato ya kitufe cha zana za ufikivu"</string>
@@ -2225,7 +2220,7 @@
<string name="accessibility_shortcut_service_on_lock_screen_title" msgid="3923122834058574478">"Njia ya mkato kwenye skrini iliyofungwa"</string>
<string name="accessibility_shortcut_description" msgid="2184693606202133549">"Ruhusu kipengele cha njia ya mkato ya kufikia vipengele kiwake kwenye skrini iliyofungwa. Shikilia vitufe vyote viwili vya sauti kwa sekunde chache."</string>
<string name="accessibility_button_title" msgid="5251235485581552614">"Kitufe cha zana za ufikivu"</string>
- <string name="accessibility_button_gesture_title" msgid="3573456209050374139">"Ishara na kitufe cha zana za ufikivu"</string>
+ <string name="accessibility_button_gesture_title" msgid="3573456209050374139">"Usogezaji na vitufe vya zana za ufikivu"</string>
<string name="accessibility_button_intro_text" msgid="80993874471745687">"Fikia vipengele vya ufikivu kwa haraka kutoka kwenye skrini yoyote"</string>
<string name="accessibility_button_about_title" msgid="3581116105084067926">"Kuhusu kitufe cha zana za ufikivu"</string>
<string name="accessibility_button_gesture_about_title" msgid="8468987303602865536">"Kuhusu ishara na kitufe cha zana za ufikivu"</string>
@@ -2234,7 +2229,7 @@
<string name="accessibility_button_summary" msgid="8510939012631455831">"Fikia vipengele vya ufikivu haraka"</string>
<string name="accessibility_button_gesture_description" msgid="1141723096904904336">"<b>Ili uanze</b><br/> {0,number,integer}. Nenda kwenye mipangilio ya ufikivu<br/> {1,number,integer}. Teua kipengele kisha uguse njia ya mkato<br/> {2,number,integer}. Chagua ikiwa ungependa kutumia kitufe au ishara kufikia kipengele<br/>"</string>
<string name="accessibility_button_description" msgid="7669538706120092399">"<b>Ili uanze</b><br/> {0,number,integer}. Nenda kwenye mipangilio ya ufikivu<br/> {1,number,integer}. Teua kipengele kisha uguse njia ya mkato<br/> {2,number,integer}. Chagua kitufe ili ufikie kipengele<br/>"</string>
- <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Tumia ishara au kitufe"</string>
+ <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Tumia usogezaji au kitufe"</string>
<string name="accessibility_button_location_title" msgid="7182107846092304942">"Mahali"</string>
<string name="accessibility_button_size_title" msgid="5785110470538960881">"Ukubwa"</string>
<string name="accessibility_button_fade_title" msgid="8081993897680588829">"Fifia wakati hakitumiki"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Anzisha hali"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Maalum"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Punguza usumbufu"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Washa kipengele cha Usinisumbue"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Sauti za kengele na maudhui zinaweza kukatiza"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Weka ratiba"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Ratiba"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"Saa <xliff:g id="HOURS">%1$d</xliff:g>, dak <xliff:g id="MINUTES">%2$d</xliff:g>"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Washa kiotomatiki"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ratibu"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Zima simu katika vipindi fulani"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Weka sheria za Usinisumbue"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"fungua arifa"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Ruhusu uahirishaji wa arifa"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Kitone cha arifa kwenye aikoni ya programu"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Vifurushi vya arifa"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Viputo"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Viputo"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Yafanye mazungumzo haya yatoe viputo"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Zote"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Ruhusu programu zibatilishe hali"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Programu zinazoweza kukatiza"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Chagua programu zaidi"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Kipochi"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Betri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Kidirisha cha Mipangilio"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Lazimisha hali ya eneo-kazi"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Lazimisha hali ya jaribio la eneo-kazi kwenye maonyesho yasiyo ya msingi"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Kuwasha madirisha yenye muundo huru"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Ruhusu matumizi ya madirisha yenye muundo huru."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Ruhusu matumizi ya madirisha yenye muundo huru kwenye skrini ya pili"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Ruhusu matumizi ya madirisha yenye muundo huru kwenye skrini ya pili pekee."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ruhusu ukubwa usioweza kubadilishwa katika madirisha mengi"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Huruhusu programu zenye ukubwa usioweza kubadilishwa ziwe katika madirisha mengi"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Badilisha ulazimishaji wa mandhari meusi"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Sehemu ya data ya kifaa hiki inahitaji kugeuzwa kuwa ext4 kabla ya kutumia chaguo la wasanidi programu la KB 16. Hatuwezi kukuhakikishia uadilifu wa programu katika hali hii na huenda data yoyote iliyohifadhiwa kwenye simu wakati programu ya kuwasha mfumo wa uendeshaji imefunguliwa ikawa katika hatari. Hatua ya kuwasha chaguo la KB 16 itahitaji kifaa kiwashwe tena baada ya hatua hii. Ukiwa katika hali hii, unaweza kubadilisha kati ya hali za KB 4 na KB 16 kwa kuwasha tena kifaa. Baadhi ya vipengele vitazimwa katika hali hizi, kwa hivyo huenda baadhi ya programu zisifanye kazi. Ili urudishe kifaa kwenye hali ya toleo la umma, utahitaji kurudi kwenye hali ya KB 4 kisha ufunge programu ya kuwasha mfumo wa uendeshaji, hatua itakayorejesha mipangilio ambayo kifaa kilitoka nayo kiwandani. Baada ya kifaa kuwashwa katika Android, zima mipangilio ya kufungua OEM katika Chaguo za wasanidi programu. Data na mipangilio yote ya kifaa itafutwa na mfumo wa faili utabadilishwa kuwa ext4 baada ya uthibitishaji. Baada ya hili kukamilika, tafadhali rudi ili uwashe tena hali ya KB 16."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Futa data yote"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Imeshindwa kubadilisha muundo na kufuta sehemu ya data kuwa ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Unahitaji Mbinu ya Kufungua Programu ya Kuwasha Mfumo wa Uendeshaji"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Kifaa hiki kinahitaji programu ya kuwasha mfumo wa uendeshaji ifunguliwe kabla ya kutumia chaguo la wasanidi programu la KB 16. Hatuwezi kukuhakikishia uadilifu wa programu katika hali hii na huenda data yoyote iliyohifadhiwa kwenye simu wakati programu ya kuwasha mfumo wa uendeshaji imefunguliwa ikawa katika hatari. Mipangilio na data yote ya mtumiaji itafutwa hali ya KB 16 ikiwashwa. Baada ya programu ya kuwasha mfumo wa uendeshaji kufunguliwa, hatua ya kuwasha chaguo la KB 16 itahitaji kifaa kuwashwa tena mara mbili. Ukiwa katika hali hii, unaweza kubadilisha kati ya hali za KB 4 na KB 16 kwa kuwasha tena kifaa. Baadhi ya vipengele vitazimwa katika hali hizi, kwa hivyo huenda baadhi ya programu zisifanye kazi. Ili urejeshe kifaa kwenye hali ya toleo la umma, utahitaji kurudi kwenye hali ya KB 4 kisha ufunge programu ya kuwasha mfumo wa uendeshaji au urejeshe mipangilio ya kampuni halisi iliyotengeneza kifaa (OEM), (hatua itakayorejesha mipangilio ambayo kifaa kilitoka nayo kiwandani). Tafadhali fungua programu ya kuwasha mfumo wa uendeshaji kisha ujaribu tena. Unaweza kuona maagizo kuhusu jinsi ya kufanya hivyo katika <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Kutumia hali isiyotegemea ukurasa ya KB 4"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Unatumia hali ya KB 4 kwenye hali isiyotegemea ukurasa. Hatuwezi kukuhakikishia uadilifu wa programu katika hali hii na huenda data yoyote iliyohifadhiwa kwenye simu wakati programu ya kuwasha mfumo wa uendeshaji imefunguliwa ikawa katika hatari. Baadhi ya vipengele vitazimwa katika hali hizi, kwa hivyo huenda baadhi ya programu zisifanye kazi. Ili uingie tena katika hali ya toleo la umma, lazima ufunge programu ya kuwasha mfumo wa uendeshaji kwenye kifaa. Gusa ili uendelee kusoma."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Unatumia hali ya KB 4 kwenye hali isiyotegemea ukurasa. Hatuwezi kukuhakikishia uadilifu wa programu katika hali hii na huenda data yoyote iliyohifadhiwa kwenye simu wakati programu ya kuwasha mfumo wa uendeshaji imefunguliwa ikawa katika hatari. Baadhi ya vipengele vitazimwa katika hali hizi, kwa hivyo huenda baadhi ya programu zisifanye kazi. Ili uingie tena katika hali ya toleo la umma, lazima ufunge programu ya kuwasha mfumo wa uendeshaji kwenye kifaa. Hatua hii itarejesha tena mipangilio ambayo kifaa kilitoka nayo kiwandani na kuirejesha katika mipangilio ya toleo la umma. Baada ya kifaa kuwashwa katika Android, zima mipangilio ya kufungua OEM katika Chaguo za wasanidi programu. Iwapo kifaa kitashindwa kuwaka katika Android au si thabiti, weka upya data ya kifaa ukitumia faili mpya kabisa za kiwandani kutoka <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> or use <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> kisha uchague \'Futa Data Yote ya Kifaa\', \'Funga Programu ya Kuwasha Mfumo wa Uendeshaji\' na \'Lazimisha Kuweka kwenye sehemu zote\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Kutumia hali ya KB 16 isiyotegemea ukurasa"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Unatumia hali ya KB 16 kwenye hali isiyotegemea ukubwa wa ukurasa. Hatuwezi kukuhakikishia uadilifu wa programu katika hali hii na huenda data yoyote iliyohifadhiwa kwenye simu wakati programu ya kuwasha mfumo wa uendeshaji imefunguliwa ikawa katika hatari. Baadhi ya vipengele vitazimwa katika hali hizi, kwa hivyo huenda baadhi ya programu zisifanye kazi. Ili uingie tena katika hali ya toleo la umma, ni lazima urudi katika hali ya KB 4 kisha ufunge programu ya kuwasha mfumo wa uendeshaji kwenye kifaa. Gusa ili uendelee kusoma."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Unatumia hali ya KB 16 kwenye hali isiyotegemea ukubwa wa ukurasa. Hatuwezi kukuhakikishia uadilifu wa programu katika hali hii na huenda data yoyote iliyohifadhiwa kwenye simu wakati programu ya kuwasha mfumo wa uendeshaji imefunguliwa ikawa katika hatari. Baadhi ya vipengele vitazimwa katika hali hizi, kwa hivyo huenda baadhi ya programu zisifanye kazi. Ili uingie tena katika hali ya toleo la umma, ni lazima urudi katika hali ya KB 4 kisha ufunge programu ya kuwasha mfumo wa uendeshaji kwenye kifaa. Hatua hii itarejesha tena mipangilio ambayo kifaa kilitoka nayo kiwandani na kuirejesha katika mipangilio ya toleo la umma. Baada ya kifaa kuwashwa katika Android, zima mipangilio ya kufungua OEM katika Chaguo za wasanidi programu. Iwapo kifaa kitashindwa kuwaka katika Android au si thabiti, weka upya data ya kifaa ukitumia picha mpya kabisa za kiwandani kutoka <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> au utumie <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> kisha uchague \'Futa Kabisa Data Yote Kwenye Kifaa\', \'Funga Programu ya Kuwasha Mfumo wa Uendeshaji\' na \'Lazimisha Kuweka kwenye sehemu zote\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Hali ya KB 16 Isiyotegemea Ukurasa"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Endelea kusoma"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Kidhibiti cha ripoti ya hitilafu"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Chagua utakachokiona kwenye skrini wakati kompyuta kibao yako imeshikiliwa kwenye kiweko. Kifaa chako kinaweza kutumia nishati nyingi zaidi taswira ya skrini inapotumika."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Badilisha upendavyo"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Uweke mapendeleo ya <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Itahitaji kuwashwa tena ili kuruhusu uwezo wa muundo huru."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Itahitaji kuwashwa tena ili kuwezesha hali ya kompyuta ya mezani kwenye skrini nyingine."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Unahitaji kuwasha tena ili kuruhusu matumizi ya madirisha yenye muundo huru yaliyopitwa na wakati."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Unahitaji kuwasha tena ili kubadilisha matumizi ya madirisha yenye muundo huru."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Unahitaji kuwasha tena ili kulazimisha matumizi ya madirisha yenye muundo huru kwenye skrini za pili."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Washa tena sasa"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Washa tena baadaye"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Sauti Inayojirekebisha"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index d5ca718..7422650 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"முகம் மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"முகம், கைரேகை மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"முகம், கைரேகைகள் மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"அடையாளச் சரிபார்ப்பு இயக்கத்தில் உள்ளதால் இது தேவை"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"விருப்பங்கள்"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"அணுகல்தன்மை"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"கைமுறை கீபோர்டு"</string>
- <string name="show_ime" msgid="4334255501724746849">"ஸ்கிரீன் கீபோர்டைப் பயன்படுத்து"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"கைமுறை கீபோர்டு இயக்கத்தில் இருக்கும் போது இதைத் திரையில் வைத்திருக்கும்"</string>
<string name="bounce_keys" msgid="7419450970351743904">"பவுன்ஸ் விசைகள்"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> மில்லி வினாடிக்குள் ஒரே பட்டனைத் தொடர்ச்சியாக அழுத்துவதைக் கீபோர்டு புறக்கணிக்கிறது"</string>
<string name="slow_keys" msgid="2891452895499690837">"ஸ்லோ கீஸ்"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"பரவாயில்லை, தொடர்க"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ரத்துசெய்"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"பெரிதாக்கல் அமைப்புகள்"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 விரலால் Magnifierரை நகர்த்துங்கள்"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"திரையில் எங்கேனும் நகர்த்த 1 விரலால் இழுங்கள்"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ஒரு விரலால் இழுத்து பெரிதாக்கல் பகுதியை நகர்த்தலாம்."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"இரண்டு விரல்களால் இழுத்து பெரிதாக்கல் பகுதியை நகர்த்தலாம்."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"திரையின் ஒரு பகுதியை மட்டும் பெரிதாக்கும்போது இருக்காது"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"திரையைப் பெரிதாக்க, பட்டனைத் தட்டவும்"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"உள்ளடக்கத்தை மேலும் தெளிவாகக் காட்ட திரையைப் பெரிதாக்கலாம்"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>பெரிதாக்க:</b><br/> {0,number,integer}. பெரிதாக்கத் தொடங்குவதற்கு ஷார்ட்கட்டைப் பயன்படுத்தவும்<br/> {1,number,integer}. திரையைத் தட்டவும்<br/> {2,number,integer}. திரையில் நகர்த்த இரு விரல்களால் இழுக்கவும்<br/> {3,number,integer}. அளவை மாற்ற இரு விரல்களால் பின்ச் செய்யவும்<br/> {4,number,integer}. பெரிதாக்குவதை நிறுத்த ஷார்ட்கட்டைப் பயன்படுத்தவும்<br/><br/> <b>தற்காலிகமாகப் பெரிதாக்க:</b><br/> {0,number,integer}. பெரிதாக்கல் வகை முழுத்திரைக்கு அமைக்கப்பட்டிருப்பதை உறுதிசெய்து கொள்ளவும்<br/> {1,number,integer}. பெரிதாக்கத் தொடங்குவதற்கு ஷார்ட்கட்டைப் பயன்படுத்தவும்<br/> {2,number,integer}. திரையில் எங்கேனும் தொட்டுப் பிடித்திருக்கவும்<br/> {3,number,integer}. திரையில் எங்கேனும் செல்ல விரலை நகர்த்தவும்<br/> {4,number,integer}. பெரிதாக்குவதை நிறுத்த விரலைத் திரையிலிருந்து எடுக்கவும்"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>பெரிதாக்க:</b><br/> {0,number,integer}. பெரிதாக்கலைத் தொடங்க, ஷார்ட்கட் பயன்படுத்தவும்<br/> {1,number,integer}. திரையைத் தட்டவும்<br/> {2,number,integer}. திரையில் எங்கேனும் நகர்த்த 2 விரல்களால் இழுக்கவும்<br/> {3,number,integer}. அளவை மாற்ற 2 விரல்களால் பின்ச் செய்யவும்<br/> {4,number,integer}. பெரிதாக்கலை நிறுத்த, ஷார்ட்கட் பயன்படுத்தவும்<br/><br/> தற்காலிகமாகப் பெரிதாக்கலாம், பலவற்றைச் செய்யலாம்."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>பெரிதாக்க:</b><br/> {0,number,integer}. பெரிதாக்கலைத் தொடங்க, ஷார்ட்கட் பயன்படுத்தவும்<br/> {1,number,integer}. திரையைத் தட்டவும்<br/> {2,number,integer}. திரையில் எங்கேனும் நகர்த்த 1 அல்லது 2 விரல்களால் இழுக்கவும்<br/> {3,number,integer}. அளவை மாற்ற 2 விரல்களால் பின்ச் செய்யவும்<br/> {4,number,integer}. பெரிதாக்கலை நிறுத்த, ஷார்ட்கட் பயன்படுத்தவும்<br/><br/> தற்காலிகமாகப் பெரிதாக்கலாம், பலவற்றைச் செய்யலாம்."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"’பெரிதாக்கல்’ அம்சம் ஆன் செய்யப்பட்டுள்ளபோது திரையைப் பெரிதாக்கிப் பார்க்கலாம்.\n\n"<b>"அதற்கு "</b>", இந்த அம்சத்தைத் தொடங்கி திரையில் எங்கு வேண்டுமானாலும் தட்டவும்.\n"<ul><li>"ஸ்க்ரோல் செய்ய இரண்டு அல்லது மேற்பட்ட விரல்களில் இழுக்கவும்"</li>\n<li>"அளவை மாற்ற இரண்டு அல்லது மேற்பட்ட விரல்களில் பின்ச் செய்யவும்"</li></ul>\n\n<b>"தற்காலிகமாகப் பெரிதாக்க"</b>", இந்த அம்சத்தைத் தொடங்கி திரையில் எங்கு வேண்டுமானாலும் தொட்டுப் பிடிக்கவும்.\n"<ul><li>"திரையில் எங்கு வேண்டுமானாலும் செல்ல இழுக்கவும்"</li>\n<li>"சிறிதாக்க விரல்களால் பின்ச் செய்து மேலே இழுக்கவும்"</li></ul>\n\n"கீபோர்டிலோ வழிசெலுத்தல் பட்டியையோ பெரிதாக்க இயலாது."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"பக்கம் <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> / <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"அணுகல்தன்மை பட்டனுக்கான ஷார்ட்கட்"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"பயன்முறையை உருவாக்குதல்"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"பிரத்தியேகம்"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"குறுக்கீடுகளைக் குறைத்தல்"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"தொந்தரவு செய்ய வேண்டாம் என்பதை ஆன் செய்யும்"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"அலாரங்களும் மீடியா ஒலிகளும் குறுக்கிட முடியும்"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"திட்ட அட்டவணையை அமையுங்கள்"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"திட்டமிடுங்கள்"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ம.நே <xliff:g id="MINUTES">%2$d</xliff:g> நிமி"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"தானாகவே இயக்குதல்"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"நேர அட்டவணை"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"குறிப்பிட்ட நேரத்தில் ஒலி முடக்கு"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"\'தொந்தரவு செய்ய வேண்டாம்’ விதிகளை அமைத்தல்"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"அறிவிப்பைத் திறக்கும்"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"அறிவிப்புகளை ஸ்னூஸ் செய்ய அனுமதி"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ஆப்ஸ் ஐகானில் அறிவிப்பு புள்ளி"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"அறிவிப்புத் தொகுப்புகள்"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"குமிழ்கள்"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"குமிழ்கள்"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"இந்த உரையாடலைக் குமிழாக்கு"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"அனைத்தும்"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ஆப்ஸை மீறிச் செயல்பட அனுமதிக்கின்றன"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"குறுக்கிட முடிகின்ற ஆப்ஸ்"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"கூடுதல் ஆப்ஸைத் தேர்ந்தெடுங்கள்"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"சார்ஜ் செய்யும் பெட்டி"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"பேட்டரி"</string>
<string name="settings_panel_title" msgid="346363079938069215">"அமைப்புகளுக்கான பேனல்"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"கட்டாய டெஸ்க்டாப் பயன்முறை"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"இரண்டாம்நிலை திரைகளில் \'கட்டாயப் பரிசோதனை டெஸ்க்டாப்\' பயன்முறை"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"குறிப்பிட்ட வடிவமில்லாத சாளரங்களை இயக்குதல்"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"குறிப்பிட்ட வடிவமில்லாத சாளரங்களுக்கான ஆதரவை இயக்கலாம்."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"குறிப்பிட்ட வடிவமில்லாத சாளரத்தை இரண்டாம் திரையில் இயக்குதல்"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"குறிப்பிட்ட வடிவமில்லாத சாளரத்தை இரண்டாம் நிலைத் திரையில் மட்டும் இயக்குதல்."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"அளவு மாற்ற இயலாதவற்றைப் பல சாளரத்தில் இயக்கு"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"அளவு மாற்ற இயலாத ஆப்ஸைப் பல சாளரத்தில் இயக்க அனுமதிக்கும்"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"force-dark அம்சத்தை மீறிச் செயல்படுதல்"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16 கி.பை. டெவெலப்பர் விருப்பத்தைப் பயன்படுத்தும் முன்பு இந்தச் சாதனத்தின் தரவுப் பிரிப்பு ext4 ஃபைல் அமைப்பிற்கு மாற்றப்பட வேண்டும். இந்தப் பயன்முறையில் மென்பொருளின் முழுமைத்தன்மைக்கு உத்திரவாதம் இல்லை. அத்துடன் பூட்லோடர் அன்லாக் செய்யப்பட்டிருக்கும்போது மொபைலில் சேமிக்கப்பட்ட அனைத்துத் தரவும் ஆபத்தில் இருக்கக்கூடும். 16 கி.பை. விருப்பத்தைச் செயல்படுத்த, இதற்குப் பின் மீண்டும் ஒருமுறை மறுபடி தொடங்க வேண்டும். இந்தப் பயன்முறையில் இருக்கும்போது, ஒருமுறை மறுபடி தொடங்கி 4 கி.பை. மற்றும் 16 கி.பை. இடையே முன்னும் பின்னும் மாறிக்கொள்ளலாம். இந்தப் பயன்முறைகளில் சில அம்சங்கள் முடக்கப்படும் என்பதால் சில ஆப்ஸ் வேலை செய்யாமல் போகக்கூடும். தயாரிப்புப் பயன்முறைக்குச் சாதனத்தை அமைக்க 4 கி.பை. பயன்முறைக்கு மாறி பூட்லோடரைப் பூட்டுங்கள், இது சாதனத்தை ஆரம்பநிலைக்கு மீட்டமைக்கும். சாதனம் Androidல் தொடங்கியதும், டெவெலப்பர் விருப்பங்களில் OEM அன்லாக்கை முடக்கவும். சாதனம் படிக்க முடியாதபடி செய்யப்படும் மற்றும் உறுதிசெய்த பின் ஃபைல் அமைப்பு ext4 ஃபைல் அமைப்பிற்கு மாற்றப்படும். இது முடிந்ததும், மீண்டும் வந்து 16 கி.பை பயன்முறையை இயக்க வேண்டும்."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"அனைத்துத் தரவையும் அழி"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"தரவுப் பிரிப்பை ext4 ஃபைல் அமைப்பிற்கு மாற்றியமைக்கவும் படிக்க முடியாதபடி செய்யவும் முடியவில்லை."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"பூட்லோடர் அன்லாக் தேவை"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16 கி.பை. டெவெலப்பர் விருப்பத்தைப் பயன்படுத்தத் தொடங்கும் முன் இந்தச் சாதனத்தில் பூட்லோடர் அன்லாக் செய்யப்பட்டிருக்க வேண்டும். இந்தப் பயன்முறையில் மென்பொருளின் முழுமைத்தன்மைக்கு உத்திரவாதம் இல்லை. அத்துடன் பூட்லோடர் அன்லாக் செய்யப்பட்டிருக்கும்போது மொபைலில் சேமிக்கப்பட்ட அனைத்துத் தரவும் ஆபத்தில் இருக்கக்கூடும். 16 கி.பை. பயன்முறையைச் செயல்படுத்தும்போது அனைத்துப் பயனர் தரவும் அமைப்புகளும் படிக்க முடியாதபடி செய்யப்படும். பூட்லோடர் அன்லாக் செய்யப்பட்டதும், 16 கி.பை. விருப்பத்தைச் செயல்படுத்த இருமுறை மறுபடி தொடங்க வேண்டும். இந்தப் பயன்முறையில் இருக்கும்போது, ஒருமுறை மறுபடி தொடங்கி 4 கி.பை. மற்றும் 16 கி.பை. இடையே முன்னும் பின்னும் மாறிக்கொள்ளலாம். இந்தப் பயன்முறைகளில் சில அம்சங்கள் முடக்கப்படும் என்பதால் சில ஆப்ஸ் வேலை செய்யாமல் போகக்கூடும். தயாரிப்புப் பயன்முறைக்குச் சாதனத்தை அமைக்க 4 கி.பை. பயன்முறைக்கு மாற்ற வேண்டும். பின்பு OEM/பூட்லோடர் (சாதனத்தை ஆரம்பநிலைக்கு மீட்டமைக்கும்) சாதனத்தைப் பூட்டும். பூட்லோடரை அன்லாக் செய்து மீண்டும் முயலவும். இங்கே இதைச் செய்யும் வழிமுறையைப் பார்க்கலாம்: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4 கி.பை. பக்கம் சாராத பயன்முறையைப் பயன்படுத்துகிறது"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"4 கி.பை. இல் இயங்கும் பக்கம் சாராத பயன்முறையில் உள்ளீர்கள். இந்தப் பயன்முறையில் மென்பொருளின் முழுமைத்தன்மைக்கு உத்திரவாதம் இல்லை. அத்துடன் பூட்லோடர் அன்லாக் செய்யப்பட்டிருக்கும்போது மொபைலில் சேமிக்கப்பட்ட அனைத்துத் தரவும் ஆபத்தில் இருக்கக்கூடும். இந்தப் பயன்முறைகளில் சில அம்சங்கள் முடக்கப்படும் என்பதால் சில ஆப்ஸ் வேலை செய்யாமல் போகக்கூடும். தயாரிப்புப் பயன்முறைக்குத் திரும்ப, சாதனத்தின் பூட்லோடரைப் பூட்ட வேண்டும். மேலும் படிக்க தட்டவும்."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"4 கி.பை. இல் இயங்கும் பக்கம் சாராத பயன்முறையில் உள்ளீர்கள். இந்தப் பயன்முறையில் மென்பொருளின் முழுமைத்தன்மைக்கு உத்திரவாதம் இல்லை. அத்துடன் பூட்லோடர் அன்லாக் செய்யப்பட்டிருக்கும்போது மொபைலில் சேமிக்கப்பட்ட அனைத்துத் தரவும் ஆபத்தில் இருக்கக்கூடும். இந்தப் பயன்முறைகளில் சில அம்சங்கள் முடக்கப்படும் என்பதால் சில ஆப்ஸ் வேலை செய்யாமல் போகக்கூடும். தயாரிப்புப் பயன்முறைக்குத் திரும்ப, சாதனத்தின் பூட்லோடரைப் பூட்ட வேண்டும். இது சாதனத்தை மீண்டும் ஆரம்பநிலைக்கு மீட்டமைக்கும் மற்றும் தயாரிப்பு அமைப்புகளுக்கு மீட்டெடுக்கும். சாதனம் Androidல் தொடங்கியதும், டெவெலப்பர் விருப்பங்களில் OEM அன்லாக்கை முடக்கவும். சாதனம் Androidல் தொடங்கவில்லை அல்லது நிலையற்றதாக இருந்தால் <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> பக்கத்தில் இருந்து சமீபத்திய ஃபேக்டரி பிரதியுடன் சாதனத்தை மீண்டும் ஃபிளாஷ் செய்யவும் அல்லது <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> இணைப்பைப் பயன்படுத்தி \'சாதனத்தைப் படிக்க முடியாதபடி செய்\', \'பூட்லோடரைப் பூட்டு\' மற்றும் \'அனைத்துப் பிரிப்பையும் வேகமாக ஃபிளாஷ் செய்\' என்பதைத் தேர்ந்தெடுக்கவும்."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16 கி.பை. பக்கம் சாராத பயன்முறையைப் பயன்படுத்துகிறது"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"பக்கம் சாராத பயன்முறையின் 16 கி.பை. பயன்முறையில் உள்ளீர்கள். இந்தப் பயன்முறையில் மென்பொருளின் முழுமைத்தன்மைக்கு உத்திரவாதம் இல்லை. அத்துடன் பூட்லோடர் அன்லாக் செய்யப்பட்டிருக்கும்போது மொபைலில் சேமிக்கப்பட்ட அனைத்துத் தரவும் ஆபத்தில் இருக்கக்கூடும். இந்தப் பயன்முறைகளில் சில அம்சங்கள் முடக்கப்படும் என்பதால் சில ஆப்ஸ் வேலை செய்யாமல் போகக்கூடும். தயாரிப்புப் பயன்முறைக்குத் திரும்ப, 4 கி.பை. பயன்முறைக்கு அமைத்து சாதனத்தின் பூட்லோடரைப் பூட்ட வேண்டும். மேலும் படிக்க தட்டவும்."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"பக்கம் சாராத பயன்முறையின் 16 கி.பை. பயன்முறையில் உள்ளீர்கள். இந்தப் பயன்முறையில் மென்பொருளின் முழுமைத்தன்மைக்கு உத்திரவாதம் இல்லை. அத்துடன் பூட்லோடர் அன்லாக் செய்யப்பட்டிருக்கும்போது மொபைலில் சேமிக்கப்பட்ட அனைத்துத் தரவும் ஆபத்தில் இருக்கக்கூடும். இந்தப் பயன்முறைகளில் சில அம்சங்கள் முடக்கப்படும் என்பதால் சில ஆப்ஸ் வேலை செய்யாமல் போகக்கூடும். தயாரிப்புப் பயன்முறைக்குத் திரும்ப, 4 கி.பை. பயன்முறைக்கு அமைத்து சாதனத்தின் பூட்லோடரைப் பூட்ட வேண்டும். இது சாதனத்தை மீண்டும் ஆரம்பநிலைக்கு மீட்டமைக்கும் மற்றும் தயாரிப்பு அமைப்புகளுக்கு மீட்டெடுக்கும். சாதனம் Androidல் தொடங்கியதும், டெவெலப்பர் விருப்பங்களில் OEM அன்லாக்கை முடக்கவும். சாதனம் Androidல் தொடங்கவில்லை அல்லது நிலையற்றதாக இருந்தால் <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> பக்கத்தில் இருந்து சமீபத்திய ஃபேக்டரி பிரதி மூலம் சாதனத்தை மீண்டும் ஃபிளாஷ் செய்யவும் அல்லது <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> இணைப்பைப் பயன்படுத்தி \'சாதனத்தைப் படிக்க முடியாதபடி செய்\', \'பூட்லோடரைப் பூட்டு\' மற்றும் \'அனைத்துப் பார்டிஷன்களையும் வேகமாக ஃபிளாஷ் செய்\' என்பதைத் தேர்ந்தெடுக்கவும்."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 கி.பை. பக்கம் சாராத பயன்முறை"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"மேலும் காட்டு"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"பிழை அறிக்கை ஹேண்ட்லர்"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"உங்கள் டேப்லெட் டாக் செய்யப்பட்டிருக்கும்போது திரையில் என்ன காட்டப்பட வேண்டும் என்பதைத் தேர்வுசெய்யலாம். ஸ்கிரீன் சேவரைப் பயன்படுத்தும்போது உங்கள் சாதனம் அதிக பேட்டரியைப் பயன்படுத்தக்கூடும்."</string>
<string name="customize_button_title" msgid="1110284655990203359">"தனிப்பயனாக்கு"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ஐப் பிரத்தியேகமாக்கும்"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"குறிப்பிட்ட வடிவமில்லாத சாளரங்களுக்கான ஆதரவை இயக்க சாதனத்தை மீண்டும் தொடங்கவும்."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"இரண்டாம் நிலைத் திரையில் டெஸ்க்டாப் பயன்முறையைப் பயன்படுத்த, சாதனத்தை மீண்டும் தொடங்குதல் அவசியம்."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"குறிப்பிட்ட வடிவமில்லாத பழைய சாளரத்திற்கான ஆதரவை இயக்க, சாதனத்தை மீண்டும் தொடங்கவும்."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"குறிப்பிட்ட வடிவமில்லாத சாளரத்திற்கான ஆதரவை மாற்ற, சாதனத்தை மீண்டும் தொடங்கவும்."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"இரண்டாம் நிலைத் திரையில் குறிப்பிட்ட வடிவமில்லாத சாளரத்தைப் பயன்படுத்த, சாதனத்தை மீண்டும் தொடங்கவும்."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"இப்போதே மீண்டும் தொடங்கு"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"பிறகு மீண்டும் தொடங்கு"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"சுற்றிலும் கேட்கும் ஆடியோ"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 2405062..e8406cc 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ముఖం, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ముఖం, వేలిముద్ర, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ముఖం, వేలిముద్రలు, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ఐడెంటిటీ చెక్ ఆన్లో ఉన్నందున ఇలా చేయడం అవసరం"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"ఆప్షన్లు"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"యాక్సెసిబిలిటీ"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"భౌతిక కీబోర్డ్"</string>
- <string name="show_ime" msgid="4334255501724746849">"స్క్రీన్పై కీబోర్డ్ను ఉపయోగించండి"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"ఫిజికల్ కీబోర్డ్ యాక్టివ్గా ఉన్నప్పుడు దీన్ని స్క్రీన్పై ఉంచుతుంది"</string>
<string name="bounce_keys" msgid="7419450970351743904">"బౌన్స్ కీలు"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"ఏదైనా ఒక కీని <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> మిల్లీ సెకన్ల లోపు తిరిగి నొక్కితే కీబోర్డ్ దాన్ని విస్మరిస్తుంది"</string>
<string name="slow_keys" msgid="2891452895499690837">"నిదానంగా పనిచేసే కీలు"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"మోడ్ను క్రియేట్ చేయండి"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"అనుకూలంగా మార్చు"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"అంతరాయాలను పరిమితం చేయండి"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"అంతరాయం కలిగించవద్దును ఆన్ చేయండి"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"అలారంలు, మీడియా శబ్దాలు అంతరాయం కలిగించగలవు"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"షెడ్యూల్ను సెట్ చేయండి"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"షెడ్యూల్ చేయండి"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> గం., <xliff:g id="MINUTES">%2$d</xliff:g> నిమి."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"ఆటోమేటిక్గా ఆన్ చేయండి"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"షెడ్యూల్"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"కొన్ని సమయాల్లో ఫోన్ని నిశ్శబ్దంగా ఉంచు"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"అంతరాయం కలిగించవద్దు నియమాలు సెట్ చేయండి"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"నోటిఫికేషన్ను తెరువు"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"నోటిఫికేషన్లను తాత్కాలికంగా ఆపివేయడాన్ని అనుమతించండి"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"యాప్ చిహ్నంపై నోటిఫికేషన్ డాట్"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"నోటిఫికేషన్ బండిల్స్"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"బబుల్స్"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"బబుల్స్"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ఈ సంభాషణను బబుల్ చేయండి"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"అన్నీ"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"భర్తీ చేయడానికి యాప్లను అనుమతించండి"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"అంతరాయం కలిగించగల యాప్లు"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"మరిన్ని యాప్లను ఎంచుకోండి"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"కేస్"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"బ్యాటరీ"</string>
<string name="settings_panel_title" msgid="346363079938069215">"సెట్టింగ్ల ప్యానెల్"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"ఫోర్స్ డెస్క్టాప్ మోడ్"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ఇతర డిస్ప్లేలలో తప్పనిసరి ప్రయోగాత్మక డెస్క్టాప్ మోడ్"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"ఫ్రీఫార్మ్ విండోలను ఎనేబుల్ చేయండి"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"ఫ్రీఫార్మ్ విండోలకు సంబంధించిన సపోర్ట్ను ఎనేబుల్ చేయండి."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"2వ డిస్ప్లేలో ఫ్రీఫార్మ్ విండోయింగ్ ఎనేబుల్ చేయి"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"ఫ్రీఫార్మ్ విండోలను ప్రత్యామ్నాయ డిస్ప్లేలో మాత్రమే ఎనేబుల్ చేయండి."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"మల్టీ-విండోలో సైజ్ మార్చలేని వాటిని ఎనేబుల్ చేయండి"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"సైజ్ మార్చలేని యాప్లను మల్టీ-విండోలో ఉండేందుకు అనుమతిస్తుంది"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"ఫోర్స్-డార్క్ను ఓవర్రైడ్ చేయడం"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16KB డెవలపర్ ఆప్షన్ను ఉపయోగించే ముందు ఈ పరికరం తాలూకు డేటా పార్టిషన్ను ext4కి మార్చాలి. ఈ మోడ్లో సాఫ్ట్వేర్ ఖచ్చితత్వానికి హామీ ఇవ్వబడదు, బూట్లోడర్ అన్లాక్ చేయబడినప్పుడు ఫోన్లో స్టోర్ చేయబడిన ఏదైనా డేటా ప్రమాదంలో ఉండవచ్చు. 16KB ఆప్షన్ను యాక్టివేట్ చేయడానికి దీని తర్వాత మరొక సారి రీబూట్ చేయాల్సిన అవసరం ఉంది. మీరు ఈ మోడ్లో ఉన్న తర్వాత, మీరు ఒకసారి రీబూట్ చేయడం ద్వారా 4KB, 16KB మోడ్ల మధ్య ముందుకు వెనుకకు మారవచ్చు. ఈ మోడ్లలో కొన్ని ఫీచర్లు డిజేబుల్ చేయబడతాయి, కాబట్టి కొన్ని అప్లికేషన్లు పని చేయకపోవచ్చు. పరికరాన్ని ప్రొడక్షన్ మోడ్కు అందించడానికి, మీరు 4KB మోడ్కు స్విచ్ అవ్వాలి, ఆపై పరికరాన్ని ఫ్యాక్టరీ రీసెట్ చేసే బూట్లోడర్ను లాక్ చేయాలి. పరికరం విజయవంతంగా Androidలోకి బూట్ అయిన తర్వాత, డెవలపర్ ఆప్షన్లలో OEM అన్లాకింగ్ను డిజేబుల్ చేయండి. నిర్ధారించిన తర్వాత పరికరం పూర్తిగా తొలగించబడుతుంది, ఫైల్సిస్టమ్ ext4కి మార్చబడుతుంది. ఇది పూర్తయిన తర్వాత, దయచేసి 16KBని మళ్లీ ఎనేబుల్ చేయడానికి తిరిగి రండి."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"మొత్తం డేటాను ఫ్యాక్టరీ రీసెట్ చేయండి"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"డేటా పార్టిషన్ను ext4కి రీఫార్మాట్ చేయడం, పూర్తిగా తొలగించడం విఫలమైంది."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"బూట్లోడర్ అన్లాక్ అవసరం"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"ఈ పరికరంలో 16KB డెవలపర్ ఆప్షన్ను ఉపయోగించే ముందు దాని బూట్లోడర్ను అన్లాక్ చేసి ఉండాలి. ఈ మోడ్లో సాఫ్ట్వేర్ ఖచ్చితత్వానికి హామీ ఉండదు, బూట్లోడర్ అన్లాక్ అయినప్పుడు ఫోన్లో స్టోర్ అయిన ఏదైనా డేటా ప్రమాదంలో ఉండవచ్చు. 16KB మోడ్ను యాక్టివేట్ చేసినప్పుడు మొత్తం యూజర్ డేటా, సెట్టింగ్లు పూర్తిగా తొలగించబడతాయి. ఒక్కసారి బూట్లోడర్ను అన్లాక్ చేసిన తర్వాత, 16KB ఆప్షన్ను యాక్టివేట్ చేయడానికి రెండుసార్లు రీబూట్ చేయాల్సిన అవసరం ఉంది. మీరు ఈ మోడ్లో ఉన్న తర్వాత, ఒకసారి రీబూట్ చేయడం ద్వారా 4KB, 16KB మోడ్ల మధ్య ముందుకు వెనుకకు మారవచ్చు. ఈ మోడ్లలో కొన్ని ఫీచర్లు డిజేబుల్ అవుతాయి, కాబట్టి కొన్ని అప్లికేషన్లు పని చేయకపోవచ్చు. పరికరాన్ని ప్రొడక్షన్ మోడ్కు అందించడానికి, మీరు 4KB మోడ్కు స్విచ్ అవ్వాలి, ఆపై పరికరాన్ని OEM/బూట్లోడర్ లాక్ చేయాలి (తద్వారా ఇది ఫ్యాక్టరీ రీసెట్ అవుతుంది). దయచేసి బూట్లోడర్ను అన్లాక్ చేసి, మళ్లీ ట్రై చేయండి. దీన్ని ఎలా చేయాలో తెలిపే సూచనలను <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> లింక్లో చూడవచ్చు"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4KB పేజీ అగ్నోస్టిక్ మోడ్ను ఉపయోగించడం"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"మీరు పేజీ అగ్నోస్టిక్ మోడ్కు సంబంధించిన 4KB మోడ్లో ఉన్నారు. ఈ మోడ్లో సాఫ్ట్వేర్ ఖచ్చితత్వానికి హామీ ఇవ్వబడదు, బూట్లోడర్ అన్లాక్ చేయబడినప్పుడు ఫోన్లో స్టోర్ చేయబడిన ఏదైనా డేటా ప్రమాదంలో ఉండవచ్చు. ఈ మోడ్లలో కొన్ని ఫీచర్లు డిజేబుల్ చేయబడతాయి, కాబట్టి కొన్ని అప్లికేషన్లు పని చేయకపోవచ్చు. ప్రొడక్షన్ మోడ్లోకి మళ్లీ ఎంటర్ అవ్వడానికి, మీరు తప్పనిసరిగా పరికరం తాలూకు బూట్లోడర్ను లాక్ చేయాలి. మరింత చదవడానికి ట్యాప్ చేయండి."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"మీరు పేజీ అగ్నోస్టిక్ మోడ్కు సంబంధించిన 4KB మోడ్లో ఉన్నారు. ఈ మోడ్లో సాఫ్ట్వేర్ ఖచ్చితత్వానికి హామీ ఇవ్వబడదు, బూట్లోడర్ అన్లాక్ చేయబడినప్పుడు ఫోన్లో స్టోర్ చేయబడిన ఏదైనా డేటా ప్రమాదంలో ఉండవచ్చు. ఈ మోడ్లలో కొన్ని ఫీచర్లు డిజేబుల్ చేయబడతాయి, కాబట్టి కొన్ని అప్లికేషన్లు పని చేయకపోవచ్చు. ప్రొడక్షన్ మోడ్లోకి మళ్లీ ఎంటర్ అవ్వడానికి, మీరు తప్పనిసరిగా పరికరం తాలూకు బూట్లోడర్ను లాక్ చేయాలి. ఇది పరికరాన్ని మళ్లీ ఫ్యాక్టరీ రీసెట్ చేసి, ప్రొడక్షన్ సెట్టింగ్లకు రీస్టోర్ చేస్తుంది. పరికరం విజయవంతంగా Androidలోకి బూట్ అయిన తర్వాత, డెవలపర్ ఆప్షన్లలో OEM అన్లాకింగ్ను డిజేబుల్ చేయండి. పరికరం Androidలో బూట్ చేయడంలో విఫలమైతే లేదా స్థిరంగా లేకపోతే, <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> వెబ్సైట్ నుండి తాజా ఫ్యాక్టరీ ఫర్మ్వేర్ ఇమేజ్లతో పరికరాన్ని మళ్లీ ఫ్లాష్ చేయండి లేదా <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> వెబ్సైట్ను ఉపయోగించండి, అలాగే \'పరికరాన్ని పూర్తిగా తొలగించండి\', \'బూట్లోడర్ను లాక్ చేయండి\', \'అన్ని పార్టిషన్లను బలవంతంగా ఫ్లాష్ చేయండి\' వంటి ఆప్షన్లను ఎంచుకోండి."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16KB పేజీ అగ్నోస్టిక్ మోడ్ను ఉపయోగించడం"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"మీరు పేజీ సైజ్ ప్రభావం చూపని మోడ్కు సంబంధించిన 16KB మోడ్లో ఉన్నారు. ఈ మోడ్లో సాఫ్ట్వేర్ ఇంటిగ్రిటీకి (ఖచ్చితత్వానికి) హామీ ఉండదు, బూట్లోడర్ అన్లాక్ చేయబడినప్పుడు ఫోన్లో స్టోర్ అయిన ఏదైనా డేటా రిస్క్లో పడే అవకాశం ఉంది. ఈ మోడ్లలో కొన్ని ఫీచర్లు డిజేబుల్ చేయబడతాయి, కాబట్టి కొన్ని అప్లికేషన్లు పని చేయకపోవచ్చు. ప్రొడక్షన్ మోడ్లోకి మళ్లీ ఎంటర్ అవ్వడానికి, మీరు తప్పనిసరిగా 4KB మోడ్కు స్విచ్ అవ్వాలి, ఆపై పరికరం తాలూకు బూట్లోడర్ను లాక్ చేయాలి. మరింత చదవడానికి ట్యాప్ చేయండి."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"మీరు పేజీ సైజ్ ప్రభావం చూపని మోడ్కు సంబంధించిన 16KB మోడ్లో ఉన్నారు. ఈ మోడ్లో సాఫ్ట్వేర్ ఇంటిగ్రిటీకి (ఖచ్చితత్వానికి) హామీ ఉండదు, బూట్లోడర్ అన్లాక్ చేయబడినప్పుడు ఫోన్లో స్టోర్ అయిన ఏదైనా డేటా రిస్క్లో పడే అవకాశం ఉంది. ఈ మోడ్లలో కొన్ని ఫీచర్లు డిజేబుల్ చేయబడతాయి, కాబట్టి కొన్ని అప్లికేషన్లు పని చేయకపోవచ్చు. ప్రొడక్షన్ మోడ్లోకి మళ్లీ ఎంటర్ అవ్వడానికి, మీరు తప్పనిసరిగా 4KB మోడ్కు స్విచ్ అవ్వాలి, ఆపై పరికరం తాలూకు బూట్లోడర్ను లాక్ చేయాలి. ఇది పరికరాన్ని మళ్లీ ఫ్యాక్టరీ రీసెట్ చేసి, ప్రొడక్షన్ సెట్టింగ్లకు రీస్టోర్ చేస్తుంది. పరికరం విజయవంతంగా Androidలోకి బూట్ అయిన తర్వాత, డెవలపర్ ఆప్షన్లలో OEM అన్లాకింగ్ను డిజేబుల్ చేయండి. పరికరం Androidలో బూట్ చేయడంలో విఫలమైతే లేదా స్థిరంగా లేకపోతే <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> వెబ్సైట్ నుండి తాజా ఫ్యాక్టరీ ఫర్మ్వేర్ ఇమేజ్లతో పరికరాన్ని మళ్లీ ఫ్లాష్ చేయండి లేదా <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> వెబ్సైట్ను ఉపయోగించండి, అలాగే \'పరికరాన్ని పూర్తిగా తొలగించండి\', \'బూట్లోడర్ను లాక్ చేయండి\', \'అన్ని పార్టిషన్లను బలవంతంగా ఫ్లాష్ చేయండి\' వంటి ఆప్షన్లను ఎంచుకోండి."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB పేజీ అగ్నోస్టిక్ మోడ్"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"మరింత చదవండి"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"బగ్ రిపోర్ట్ హ్యాండ్లర్"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"మీ టాబ్లెట్ డాక్ చేయబడినప్పుడు మీ స్క్రీన్పై మీకు ఏమి కనిపించాలో ఎంచుకోండి. స్క్రీన్ సేవర్ను ఉపయోగించినప్పుడు మీ పరికరం మరింత పవర్ను ఉపయోగించవచ్చు."</string>
<string name="customize_button_title" msgid="1110284655990203359">"అనుకూలంగా మార్చండి"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>ను అనుకూలంగా మార్చండి"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ఫ్రీఫారమ్ సపోర్ట్ను ఎనేబుల్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ద్వితీయ డిస్ప్లేలలో డెస్క్టాప్ మోడ్ను బలవంతంగా ఆన్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"లెగసీ ఫ్రీఫార్మ్ విండోయింగ్ సపోర్ట్ను ఎనేబుల్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"ఫ్రీఫార్మ్ విండోయింగ్ సపోర్ట్ను మార్చడానికి రీబూట్ చేయడం అవసరం."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"ప్రత్యామ్నాయ డిస్ప్లేలలో ఫ్రీఫార్మ్ విండోయింగ్ను బలవంతంగా ఆన్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ఇప్పుడే రీబూట్ చేయండి"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"తర్వాత రీబూట్ చేయండి"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"స్పేషియల్ ఆడియో"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 6342a66..4e73020 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"เพิ่มใบหน้าและ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"เพิ่มใบหน้า ลายนิ้วมือ และ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"เพิ่มใบหน้า ลายนิ้วมือ และ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"ต้องดำเนินการเนื่องจากการตรวจสอบตัวตนเปิดอยู่"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"ตัวเลือก"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"การช่วยเหลือพิเศษ"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"แป้นพิมพ์จริง"</string>
- <string name="show_ime" msgid="4334255501724746849">"ใช้แป้นพิมพ์บนหน้าจอ"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"เปิดทิ้งไว้บนหน้าจอในระหว่างใช้งานแป้นพิมพ์จริง"</string>
<string name="bounce_keys" msgid="7419450970351743904">"คีย์ตีกลับ"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"แป้นพิมพ์จะละเว้นการกดปุ่มเดียวกันซ้ำๆ อย่างรวดเร็วภายใน <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> มิลลิวินาที"</string>
<string name="slow_keys" msgid="2891452895499690837">"เพิ่มระยะเวลาในการกดปุ่ม"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ดำเนินการต่อ"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ยกเลิก"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"การตั้งค่าการขยาย"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ย้ายแว่นขยายด้วย 1 นิ้ว"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ใช้ 1 นิ้วลากเพื่อย้ายไปรอบๆ หน้าจอ"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ย้ายพื้นที่ในการขยายโดยลากนิ้วเพียงนิ้วเดียว"</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ย้ายพื้นที่ในการขยายโดยลากนิ้ว 2 นิ้ว"</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"ไม่พร้อมใช้งานในขณะที่ขยายเพียงบางส่วนของหน้าจอ"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"แตะปุ่มเพื่อซูม"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ซูมเข้าอย่างรวดเร็วบนหน้าจอเพื่อทำให้เนื้อหาใหญ่ขึ้น"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>วิธีซูมเข้า</b><br/> {0,number,integer}. ใช้ทางลัดเพื่อเริ่มการขยาย<br/> {1,number,integer}. แตะหน้าจอ<br/> {2,number,integer}. ใช้ 2 นิ้วลากเพื่อย้ายไปรอบๆ หน้าจอ<br/> {3,number,integer}. บีบ 2 นิ้วเพื่อปรับการซูม<br/> {4,number,integer}. ใช้ทางลัดเพื่อหยุดการขยาย<br/><br/> <b>วิธีซูมเข้าชั่วคราว</b><br/> {0,number,integer}. ตรวจสอบว่าตั้งค่าประเภทการขยายเป็นแบบเต็มหน้าจอ<br/> {1,number,integer}. ใช้ทางลัดเพื่อเริ่มการขยาย<br/> {2,number,integer}. แตะที่ใดก็ได้บนหน้าจอค้างไว้<br/> {3,number,integer}. ลากนิ้วเพื่อย้ายไปรอบๆ หน้าจอ<br/> {4,number,integer}. ยกนิ้วขึ้นเพื่อหยุดการขยาย"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>วิธีซูมเข้า</b><br/> {0,number,integer} ใช้ทางลัดเพื่อเริ่มการขยาย<br/> {1,number,integer} แตะหน้าจอ<br/> {2,number,integer} ใช้ 2 นิ้วลากเพื่อย้ายไปรอบๆ หน้าจอ<br/> {3,number,integer} บีบ 2 นิ้วเพื่อปรับการซูม<br/> {4,number,integer} ใช้ทางลัดเพื่อหยุดใช้งานการขยาย<br/><br/> คุณยังซูมเข้าชั่วคราวและอื่นๆ ได้ด้วย"</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>วิธีซูมเข้า</b><br/> {0,number,integer} ใช้ทางลัดเพื่อเริ่มการขยาย<br/> {1,number,integer} แตะหน้าจอ<br/> {2,number,integer} ใช้ 1 หรือ 2 นิ้วลากเพื่อย้ายไปรอบๆ หน้าจอ<br/> {3,number,integer}. บีบ 2 นิ้วเพื่อปรับการซูม<br/> {4,number,integer} ใช้ทางลัดเพื่อหยุดใช้งานการขยาย<br/><br/> คุณยังซูมเข้าชั่วคราวและอื่นๆ ได้ด้วย"</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"คุณจะซูมหน้าจอเข้าได้เมื่อเปิดการขยาย\n\n"<b>"วิธีซูมคือ"</b>" เริ่มการขยาย จากนั้นแตะบริเวณที่ต้องการซูมในหน้าจอ\n"<ul><li>"ลากนิ้วอย่างน้อย 2 นิ้วเพื่อเลื่อน"</li>\n<li>"บีบนิ้วอย่างน้อย 2 นิ้วเพื่อปรับการซูม"</li></ul>\n\n<b>"วิธีซูมชั่วคราวคือ"</b>" เริ่มการขยาย จากนั้นแตะบริเวณที่ต้องการซูมในหน้าจอค้างไว้\n"<ul><li>"ลากเพื่อไปยังส่วนต่างๆ ในหน้าจอ"</li>\n<li>"ยกนิ้วขึ้นเพื่อซูมออก"</li></ul>\n\n"คุณซูมเข้าโดยใช้แป้นพิมพ์หรือแถบนำทางไม่ได้"</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"หน้า <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> จาก <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ทางลัดปุ่มการช่วยเหลือพิเศษ"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"สร้างโหมด"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"กำหนดเอง"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"จำกัดการรบกวน"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"เปิด \"ห้ามรบกวน\""</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ให้เสียงของการแจ้งเตือนและสื่อรบกวนได้"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ตั้งกำหนดเวลา"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"กำหนดเวลา"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ชั่วโมง <xliff:g id="MINUTES">%2$d</xliff:g> นาที"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"เปิดอัตโนมัติ"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"กำหนดการ"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"ปิดเสียงโทรศัพท์ในบางช่วงเวลา"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"ตั้งกฎห้ามรบกวน"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"เปิดการแจ้งเตือน"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"อนุญาตให้เลื่อนการแจ้งเตือน"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"เครื่องหมายจุดแสดงการแจ้งเตือนบนไอคอนแอป"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"กลุ่มการแจ้งเตือน"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"บับเบิล"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"บับเบิล"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"แสดงการสนทนานี้เป็นบับเบิล"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ทั้งหมด"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"อนุญาตให้แอปลบล้าง"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"แอปที่รบกวนคุณได้"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"เลือกแอปเพิ่มเติม"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"กล่อง"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"แบตเตอรี่"</string>
<string name="settings_panel_title" msgid="346363079938069215">"แผงควบคุมการตั้งค่า"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"บังคับใช้โหมดเดสก์ท็อป"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"บังคับใช้โหมดเดสก์ท็อปแบบทดลองในจอแสดงผลรอง"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"เปิดใช้หน้าต่างรูปแบบอิสระ"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"เปิดใช้การรองรับหน้าต่างรูปแบบอิสระ"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"เปิดใช้หน้าต่างรูปแบบอิสระบนจอแสดงผลสำรอง"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"เปิดใช้หน้าต่างรูปแบบอิสระบนจอแสดงผลสำรองเท่านั้น"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"เปิดใช้แอปแบบปรับขนาดไม่ได้ในหลายหน้าต่าง"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"อนุญาตให้แอปแบบปรับขนาดไม่ได้แสดงในหลายหน้าต่าง"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"ลบล้างฟีเจอร์บังคับใช้ธีมมืด"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"ต้องแปลงพาร์ติชันข้อมูลของอุปกรณ์นี้เป็น ext4 ก่อนที่จะใช้ตัวเลือกสำหรับนักพัฒนาแอปแบบ 16KB ไม่รับประกันความสมบูรณ์ของซอฟต์แวร์ในโหมดนี้ และข้อมูลใดๆ ที่จัดเก็บในโทรศัพท์ในขณะที่ Bootloader ไม่ได้ล็อกอยู่อาจมีความเสี่ยง การเปิดใช้งานตัวเลือก 16KB จะต้องมีการรีบูตอีกครั้งหลังจากนี้ เมื่ออยู่ในโหมดนี้แล้ว คุณจะเปลี่ยนไปมาระหว่างโหมด 4KB กับ 16KB ได้ด้วยการรีบูตครั้งเดียว ฟีเจอร์บางอย่างจะถูกปิดใช้ในโหมดเหล่านี้ ดังนั้นบางแอปพลิเคชันจึงอาจไม่ทำงาน หากต้องการให้อุปกรณ์กลับสู่โหมดโปรดักชัน คุณต้องเปลี่ยนกลับไปใช้โหมด 4KB จากนั้นล็อก Bootloader ซึ่งจะรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น หลังจากที่อุปกรณ์บูตเข้าสู่ Android ได้สำเร็จ ให้ปิดการปลดล็อก OEM ในตัวเลือกสำหรับนักพัฒนาแอป อุปกรณ์จะถูกล้างข้อมูลและระบบไฟล์จะเปลี่ยนเป็น ext4 หลังจากการยืนยัน หลังจากการดำเนินการนี้เสร็จสมบูรณ์ โปรดกลับมาเปิดใช้โหมด 16KB อีกครั้ง"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"ลบข้อมูลทั้งหมด"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ฟอร์แมตใหม่และล้างพาร์ติชันข้อมูลเป็น ext4 ไม่สำเร็จ"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"ต้องปลดล็อก Bootloader"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"อุปกรณ์นี้ต้องมีการปลดล็อก Bootloader ก่อนที่จะใช้ตัวเลือกสำหรับนักพัฒนาแอปแบบ 16KB ไม่รับประกันความสมบูรณ์ของซอฟต์แวร์ในโหมดนี้ และข้อมูลใดๆ ที่จัดเก็บในโทรศัพท์ในขณะที่ Bootloader ไม่ได้ล็อกอยู่อาจมีความเสี่ยง ข้อมูลผู้ใช้และการตั้งค่าทั้งหมดจะถูกล้างเมื่อเปิดใช้งานโหมด 16KB เมื่อปลดล็อก Bootloader แล้ว การเปิดใช้งานตัวเลือก 16KB จะต้องมีการรีบูต 2 ครั้ง เมื่ออยู่ในโหมดนี้แล้ว คุณจะเปลี่ยนไปมาระหว่างโหมด 4KB กับ 16KB ได้ด้วยการรีบูตครั้งเดียว ฟีเจอร์บางอย่างจะถูกปิดใช้ในโหมดเหล่านี้ ดังนั้นบางแอปพลิเคชันจึงอาจไม่ทำงาน หากต้องการให้อุปกรณ์กลับสู่โหมดโปรดักชัน คุณต้องเปลี่ยนกลับไปใช้โหมด 4KB จากนั้นล็อก OEM/Bootloader (ซึ่งจะรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น) โปรดปลดล็อก Bootloader แล้วลองอีกครั้ง ดูวิธีการได้ที่ <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"กำลังใช้โหมด 4KB ในโหมดไม่คำนึงถึงขนาดหน้าหน่วยความจำ"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"คุณอยู่ในโหมด 4KB ของโหมดไม่คำนึงถึงขนาดหน้าหน่วยความจำ ไม่รับประกันความสมบูรณ์ของซอฟต์แวร์ในโหมดนี้ และข้อมูลใดๆ ที่จัดเก็บในโทรศัพท์ในขณะที่ Bootloader ไม่ได้ล็อกอยู่อาจมีความเสี่ยง ฟีเจอร์บางอย่างจะถูกปิดใช้ในโหมดเหล่านี้ ดังนั้นบางแอปพลิเคชันจึงอาจไม่ทำงาน หากต้องการกลับสู่โหมดโปรดักชันอีกครั้ง คุณต้องล็อก Bootloader ของอุปกรณ์ แตะเพื่ออ่านเพิ่มเติม"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"คุณอยู่ในโหมด 4KB ของโหมดไม่คำนึงถึงขนาดหน้าหน่วยความจำ ไม่รับประกันความสมบูรณ์ของซอฟต์แวร์ในโหมดนี้ และข้อมูลใดๆ ที่จัดเก็บในโทรศัพท์ในขณะที่ Bootloader ไม่ได้ล็อกอยู่อาจมีความเสี่ยง ฟีเจอร์บางอย่างจะถูกปิดใช้ในโหมดเหล่านี้ ดังนั้นบางแอปพลิเคชันจึงอาจไม่ทำงาน หากต้องการกลับสู่โหมดโปรดักชันอีกครั้ง คุณต้องล็อก Bootloader ของอุปกรณ์ การดำเนินการนี้จะรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้นอีกครั้งและคืนค่าเป็นโหมดโปรดักชัน หลังจากที่อุปกรณ์บูตเข้าสู่ Android ได้สำเร็จ ให้ปิดการปลดล็อก OEM ในตัวเลือกสำหรับนักพัฒนาแอป หากอุปกรณ์ไม่สามารถบูตเข้าสู่ Android หรือไม่เสถียร ให้แฟลชอุปกรณ์อีกครั้งโดยใช้ค่าเริ่มต้นล่าสุดจาก <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> หรือใช้ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> และเลือก \"ล้างข้อมูลอุปกรณ์\" \"ล็อก Bootloader\" และ \"บังคับให้แฟลชทุกพาร์ติชัน\""</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"กำลังใช้โหมด 16KB ในโหมดไม่คำนึงถึงขนาดหน้าหน่วยความจำ"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"คุณอยู่ในโหมด 16KB ของโหมดไม่คำนึงถึงขนาดหน้าหน่วยความจำ ไม่รับประกันความสมบูรณ์ของซอฟต์แวร์ในโหมดนี้ และข้อมูลใดๆ ที่จัดเก็บในโทรศัพท์ในขณะที่ Bootloader ไม่ได้ล็อกอยู่อาจมีความเสี่ยง ฟีเจอร์บางอย่างจะถูกปิดใช้ในโหมดเหล่านี้ ดังนั้นบางแอปพลิเคชันจึงอาจไม่ทำงาน หากต้องการกลับสู่โหมดโปรดักชันอีกครั้ง คุณต้องเปลี่ยนกลับไปใช้โหมด 4KB แล้วล็อก Bootloader ของอุปกรณ์ แตะเพื่ออ่านเพิ่มเติม"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"คุณอยู่ในโหมด 16KB ของโหมดไม่คำนึงถึงขนาดหน้าหน่วยความจำ ไม่รับประกันความสมบูรณ์ของซอฟต์แวร์ในโหมดนี้ และข้อมูลใดๆ ที่จัดเก็บในโทรศัพท์ในขณะที่ Bootloader ไม่ได้ล็อกอยู่อาจมีความเสี่ยง ฟีเจอร์บางอย่างจะถูกปิดใช้ในโหมดเหล่านี้ ดังนั้นบางแอปพลิเคชันจึงอาจไม่ทำงาน หากต้องการกลับสู่โหมดโปรดักชันอีกครั้ง คุณต้องเปลี่ยนกลับไปใช้โหมด 4KB แล้วล็อก Bootloader ของอุปกรณ์ การดำเนินการนี้จะรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้นอีกครั้งและคืนค่าเป็นโหมดโปรดักชัน หลังจากที่อุปกรณ์บูตเข้าสู่ Android ได้สำเร็จ ให้ปิดการปลดล็อก OEM ในตัวเลือกสำหรับนักพัฒนาแอป หากอุปกรณไม่สามารถเปิดเครื่องเพื่อเข้าสู่ Android หรือไม่เสถียร ให้แฟลชอุปกรณ์อีกครั้งโดยใช้ค่าเริ่มต้นล่าสุดจาก <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> หรือใช้ <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> และเลือก \"ล้างข้อมูลอุปกรณ์\" \"ล็อก Bootloader\" และ \"บังคับให้แฟลชทุกพาร์ติชัน\""</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"โหมด 16KB ของโหมดไม่คำนึงถึงขนาดหน้าหน่วยความจำ"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"อ่านเพิ่มเติม"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"เครื่องจัดการรายงานข้อบกพร่อง"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"เลือกสิ่งที่คุณจะเห็นในหน้าจอเมื่อวางแท็บเล็ตบนแท่นชาร์จ อุปกรณ์อาจใช้พลังงานมากขึ้นเมื่อใช้ภาพพักหน้าจอ"</string>
<string name="customize_button_title" msgid="1110284655990203359">"ปรับแต่ง"</string>
<string name="customize_button_description" msgid="7440248477266126231">"ปรับแต่ง <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ต้องรีบูตเพื่อเปิดใช้การสนับสนุนแบบอิสระ"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ต้องรีบูตเพื่อบังคับให้จอแสดงผลสำรองใช้โหมดเดสก์ท็อป"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"ต้องรีบูตเพื่อเปิดใช้การรองรับหน้าต่างรูปแบบอิสระแบบเดิม"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"ต้องรีบูตเพื่อเปลี่ยนการรองรับหน้าต่างรูปแบบอิสระ"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"ต้องรีบูตเพื่อบังคับให้เปิดใช้หน้าต่างรูปแบบอิสระบนจอแสดงผลสำรอง"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"รีบูตเลย"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"รีบูตภายหลัง"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"เสียงรอบทิศทาง"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 63bd880..b295743 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Naidagdag ang mukha at <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Naidagdag ang mukha, fingerprint, at <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Naidagdag ang mukha, mga fingerprint, at <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Kailangan ito dahil naka-on ang Pagsusuri sa Pagkakakilanlan"</string>
<string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator Unlock"</string>
<string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Idinagdag ang relo"</string>
<string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"I-set up ang iyong relo"</string>
@@ -1927,8 +1928,6 @@
<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="7347050868868080302">"Binabalewala ng keyboard ang mabilis na paulit-ulit na pagpindot sa parehong key sa loob ng <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Mga slow key"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Magpatuloy pa rin"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Kanselahin"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Mga setting ng pag-magnify"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Igalaw ang magnifier gamit ang 1 daliri"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"I-drag ang 1 daliri para gumalaw sa screen"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Galawin ang magnification area sa pag-drag sa 1 daliri."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Galawin ang magnification area sa pag-drag sa 2 daliri."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Hindi available habang naka-magnify ang isang bahagi lang ng screen"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Mag-tap ng button upang mag-zoom"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Mabilisang mag-zoom in sa screen para palakihin ang content"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Para mag-zoom in:</b><br/> {0,number,integer}. Gamitin ang shortcut para simulan ang pag-magnify<br/> {1,number,integer}. I-tap ang screen<br/> {2,number,integer}. I-drag ang 2 daliri para gumalaw sa screen<br/> {3,number,integer}. Mag-pinch gamit ang 2 daliri para i-adjust ang pag-zoom<br/> {4,number,integer}. Gamitin ang shortcut para ihinto ang pag-magnify<br/><br/> <b>Para mag-zoom in nang pansamantala:</b><br/> {0,number,integer}. Tiyaking nakatakda sa full screen ang iyong uri ng pag-magnify<br/> {1,number,integer}. Gamitin ang shortcut para simulan ang pag-magnify<br/> {2,number,integer}. Pumindot nang matagal kahit saan sa screen<br/> {3,number,integer}. I-drag ang daliri para gumalaw sa screen<br/> {4,number,integer}. Iangat ang daliri para ihinto ang pag-magnify"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Para mag-zoom in:</b><br/> {0,number,integer}. Gamitin ang shortcut para simulan ang pag-magnify<br/> {1,number,integer}. I-tap ang screen<br/> {2,number,integer}. I-drag ang 2 daliri para gumalaw sa screen<br/> {3,number,integer}. Mag-pinch gamit ang 2 daliri para i-adjust ang pag-zoom<br/> {4,number,integer}. Gumamit ng shortcut para ihinto ang pag-magnify<br/><br/> Puwede ka ring mag-zoom in pansamantala at higit pa."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Para mag-zoom in:</b><br/> {0,number,integer}. Gamitin ang shortcut para simulan ang pag-magnify<br/> {1,number,integer}. I-tap ang screen<br/> {2,number,integer}. I-drag ang 1 o 2 daliri para gumalaw sa screen<br/> {3,number,integer}. Mag-pinch gamit ang 2 daliri para i-adjust ang pag-zoom<br/> {4,number,integer}. Gumamit ng shortcut para ihinto ang pag-magnify<br/><br/> Puwede ka ring mag-zoom in pansamantala at higit pa."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kapag naka-on ang pag-magnify, makakapag-zoom in ka sa iyong screen.\n\n"<b>"Para mag-zoom"</b>", simulan ang pag-magnify, pagkatapos ay mag-tap kahit saan sa screen.\n"<ul><li>"Mag-drag ng 2 o higit pang daliri para mag-scroll"</li>\n<li>"Mag-pinch ng 2 o higit pang daliri para isaayos ang pag-zoom"</li></ul>\n\n<b>"Para mag-zoom pansamantala"</b>", simulan ang pag-magnify, pagkatapos ay pumindot nang matagal kahit saan sa screen.\n"<ul><li>"Mag-drag para gumalaw-galaw sa screen"</li>\n<li>"Iangat ang daliri para mag-zoom out"</li></ul>\n\n"Hindi ka makakapag-zoom in sa keyboard o navigation bar."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> sa <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Shortcut ng button ng accessibility"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Gumawa ng mode"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitahan ang mga pagkaantala"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"I-on ang Huwag Istorbohin"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Puwedeng makaabala ang mga alarm at tunog ng media"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Magtakda ng iskedyul"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Iskedyul"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> (na) oras, <xliff:g id="MINUTES">%2$d</xliff:g> (na) minuto"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Awtomatikong i-on"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Iskedyul"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"I-silent ang phone sa ilang panahon"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Magtakda ng mga panuntunan ng Huwag Istorbohin"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"buksan ang notification"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Payagan ang pag-snooze ng notification"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Notification dot sa icon ng app"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Mga bundle ng notification"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Mga Bubble"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Mga Bubble"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"I-bubble ang pag-uusap na ito"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Lahat"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Payagan ang mga app na mag-override"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Mga app na puwedeng umabala"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pumili pa ng mga app"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterya"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Panel ng Mga Setting"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode sa mga pangalawang display"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"I-enable ang mga freeform window"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"I-enable ang suporta para sa mga freeform window."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"I-on ang freeform windowing sa pangalawang display"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Sa pangalawang display lang i-enable ang mga freeform window."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"I-enable ang hindi nare-resize sa multi-window"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Nagpapahintulot sa mga hindi nare-resize na app na lumabas sa multi-window"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"I-override ang force-dark"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Kailangang i-convert sa ext4 ang partition ng data ng device na ito bago magamit ang 16KB na opsyon ng developer. Hindi magagarantiya ang integridad ng software, at posibleng malagay sa panganib ang anumang data na naka-store sa telepono habang naka-unlock ang bootloader. Kailangan ng isa pang pag-reboot pagkatapos nito para sa pag-activate ng 16KB na opsyon. Kapag nasa mode na ito ka na, puwede kang magpalipat-lipat sa 4KB at 16KB mode pagkatapos ng isang pag-reboot lang. Madi-disable ang ilang feature sa mga mode na ito, kaya posibleng hindi gumana ang ilang application. Para ibalik sa production mode ang device, kakailanganin mong bumalik sa 4KB mode at pagkatapos ay i-lock ang bootloader, na magfa-factory reset sa device. Pagkatapos mag-boot ng device sa Android, i-disable ang pag-unlock ng OEM sa Mga opsyon ng developer. Mawa-wipe ang device at gagawing ext4 ang filesystem pagkatapos magkumpirma. Pagkatapos nito, bumalik para i-enable ulit ang 16KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Burahin ang lahat ng data"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Hindi na-reformat at na-wipe ang partition ng data sa ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Required ang Pag-unlock ng Bootloader"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Kailangang naka-unlock ang bootloader sa device na ito bago magamit ang 16KB na opsyon ng developer. Hindi magagarantiya ang integridad ng software, at posibleng malagay sa panganib ang anumang data na naka-store sa telepono habang naka-unlock ang bootloader. Mawa-wipe ang lahat ng data at setting ng user kapag ina-activate ang 16KB mode. Kapag na-unlock na ang bootloader, kailangan ng dalawang pag-reboot para sa pag-activate ng 16KB na opsyon. Kapag nasa mode na ito ka na, puwede kang magpalipat-lipat sa 4KB at 16KB mode pagkatapos ng isang pag-reboot lang. Madi-disable ang ilang feature sa mga mode na ito, kaya posibleng hindi gumana ang ilang application. Para ibalik sa production mode ang device, kakailanganin mong bumalik sa 4KB mode at pagkatapos ay i-lock ang OEM/bootloader sa device (na magfa-factory reset nito). I-unlock ang bootloader at subukan ulit. Mahahanap mo ang mga tagubilin kung paano ito gawin sa <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Ginagamit ang 4KB page-agnostic mode"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Nasa 4KB mode ka ng page-agnostic mode. Hindi magagarantiya ang integridad ng software, at posibleng malagay sa panganib ang anumang data na naka-store sa telepono habang naka-unlock ang bootloader. Madi-disable ang ilang feature sa mga mode na ito, kaya posibleng hindi gumana ang ilang application. Para makabalik sa production mode, kailangan mong i-lock ang bootloader ng device. I-tap para magbasa pa."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Nasa 4KB mode ka ng page-agnostic mode. Hindi magagarantiya ang integridad ng software, at posibleng malagay sa panganib ang anumang data na naka-store sa telepono habang naka-unlock ang bootloader. Madi-disable ang ilang feature sa mga mode na ito, kaya posibleng hindi gumana ang ilang application. Para makabalik sa production mode, kailangan mong i-lock ang bootloader ng device. Ifa-factory reset nito ulit ang device at ire-restore ito sa mga setting sa production. Pagkatapos mag-boot ng device sa Android, i-disable ang pag-unlock ng OEM sa Mga opsyon ng developer. Kung hindi magbu-boot sa Android ang device o unstable ito, mag-flash ulit sa device ng mga pinakabagong factory image mula sa <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> o gamitin ang <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> at piliin ang \'I-wipe ang Device,\' \'I-lock ang Bootloader,\' at \'Sapilitang I-flash ang lahat ng partition.\'"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Ginagamit ang 16KB page-agnostic mode"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Nasa 16KB mode ka ng page-agnostic mode. Hindi magagarantiya ang integridad ng software sa mode na ito, at posibleng malagay sa panganib ang anumang data na naka-store sa telepono habang naka-unlock ang bootloader. Madi-disable ang ilang feature sa mga mode na ito, kaya posibleng hindi gumana ang ilang application. Para makabalik sa production mode, kailangan mong bumalik sa 4KB mode at pagkatapos ay i-lock ang bootloader ng device. I-tap para magbasa pa."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Nasa 16KB mode ka ng page-agnostic mode. Hindi magagarantiya ang integridad ng software sa mode na ito, at posibleng malagay sa panganib ang anumang data na naka-store sa telepono habang naka-unlock ang bootloader. Madi-disable ang ilang feature sa mga mode na ito, kaya posibleng hindi gumana ang ilang application. Para makabalik sa production mode, kailangan mong bumalik sa 4KB mode at pagkatapos ay i-lock ang bootloader ng device. Ifa-factory reset nito ulit ang device at ire-restore ito sa mga setting sa production. Pagkatapos mag-boot ng device sa Android, i-disable ang OEM na pag-unlock sa Mga opsyon ng developer. Kung hindi magbu-boot sa Android ang device o unstable ito, mag-flash ulit sa device ng mga pinakabagong factory image mula sa <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> o gamitin ang <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> at piliin ang \'I-wipe ang Device,\' \'I-lock ang Bootloader,\' at \'Sapilitang I-flash ang lahat ng partition.\'"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB Page-agnostic Mode"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Magbasa pa"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Tagapangasiwa ng ulat ng bug"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Piliin ang makikita mo sa iyong screen kapag naka-dock ang iyong tablet. Posibleng gumamit ng mas maraming enerhiya ang iyong device kapag gumagamit ng screen saver."</string>
<string name="customize_button_title" msgid="1110284655990203359">"I-customize"</string>
<string name="customize_button_description" msgid="7440248477266126231">"I-customize ang <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Kinakailangang mag-reboot para ma-enable ang freeform na suporta"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Kinakailangang mag-reboot para sapilitang mailapat ang desktop mode sa mga pangalawang display."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Kailangang mag-reboot para ma-enable ang suporta sa legacy na freeform windowing."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Kailangang mag-reboot para mabago ang suporta sa freeform windowing."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Kailangang mag-reboot para sapilitang ma-enable ang freeform windowing sa mga pangalawang display."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Mag-reboot ngayon"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Mag-reboot sa ibang pagkakataon"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial Audio"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 4608965..fdc1163 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Kimlik Kontrolü açık olduğu için bu zorunludur"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Seçenekler"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Erişilebilirlik"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziksel klavye"</string>
- <string name="show_ime" msgid="4334255501724746849">"Ekran klavyesi kullan"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Fiziksel klavye etkin durumdayken ekranda tut"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Geri sekme tuşları"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Klavye, aynı tuşa <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms. içinde hızlı bir şekilde tekrarlanan basma işlemlerini yoksayar"</string>
<string name="slow_keys" msgid="2891452895499690837">"Yavaş tuşlar"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Mod oluşturun"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Özel"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Kesintileri sınırlayın"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Rahatsız Etmeyin\'i açın"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarm ve medya sesleri kesintiye neden olabilir"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Program ayarlama"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Program"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> sa. <xliff:g id="MINUTES">%2$d</xliff:g> dk."</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Otomatik olarak aç"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Program"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Telefonun sesini belirli zamanlarda kapat"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Rahatsız Etmeyin kurallarını ayarlayın"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"bildirimi aç"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Bildirimin ertelenmesine izin ver"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Uygulama simgesinde bildirim noktası"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Bildirim paketleri"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Baloncuklar"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Baloncuklar"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bu görüşmeyi baloncuk olarak göster"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Tümü"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Uygulamaların geçersiz kılmasına izin ver"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Kesintiye neden olabilecek uygulamalar"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Daha fazla uygulama seçin"</string>
@@ -4082,7 +4085,7 @@
<string name="draw_overlay" msgid="7902083260500573027">"Diğer uyg. üzerinde göster"</string>
<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="allow_overlay_description" msgid="1607235723669496298">"Bu uygulamaya, kullandığınız diğer uygulamaların üzerinde gösterim izni 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ştir"</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>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Kılıf"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Pil"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Ayarlar Paneli"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Masaüstü modunu zorunlu kıl"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"İkincil ekranlarda deneysel masaüstü modunu zorunlu kıl"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Serbest biçimli pencereleri etkinleştir"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Serbest biçimli pencere desteğini etkinleştir."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"İkincil ekranda serbest biçimli pencerelemeyi etkinleştir"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Serbest biçimli pencereleri yalnızca ikincil ekranda etkinleştir."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Çoklu pencerede yeniden boyutlandırılamayan uygulamalara izin ver"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Çoklu pencerede yeniden boyutlandırılamayan uygulamalara izin verir"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Zorunlu koyu modu geçersiz kıl"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16 KB geliştirici seçeneğini kullanmadan önce bu cihazın veri bölümünün ext4\'e dönüştürülmesi gerekir. Bu modda yazılım bütünlüğü garanti edilemez ve bootloader\'ın kilidi açıkken telefonda saklanan veriler risk altında olabilir. 16 KB seçeneğini etkinleştirdikten sonra bir kez daha yeniden başlatma yapılması gerekir. Bu moddayken tek bir yeniden başlatma işlemiyle 4 KB ve 16 KB modları arasında geçiş yapabilirsiniz. Bu modlarda bazı özellikler devre dışı bırakılacağı için bazı uygulamalar çalışmayabilir. Cihazı üretim moduna döndürmek için 4 KB moduna geri dönmeniz ve bootloader\'ı kilitlemeniz gerekir. Bu durumda cihaz fabrika ayarlarına sıfırlanır. Cihaz başarılı bir şekilde Android\'de başlatıldıktan sonra Geliştirici seçeneklerinde OEM kilit açma özelliğini devre dışı bırakın. Onayınızın ardından cihaz temizlenecek ve dosya sistemi ext4 olarak değiştirilecektir. Bu işlem tamamlandıktan sonra lütfen geri gelerek 16 KB modunu tekrar etkinleştirin."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Tüm verileri sil"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Veriler temizlenemedi ve ext4 olarak yeniden biçimlendirilemedi."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Bootloader Kilidinin Açılması Gerekiyor"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16 KB geliştirici seçeneğini kullanmadan önce bu cihazın bootloader\'ının kilidinin açılması gerekir. Bu modda yazılım bütünlüğü garanti edilemez ve bootloader\'ın kilidi açıkken telefonda saklanan veriler risk altında olabilir. 16 KB modu etkinleştirildiğinde tüm kullanıcı verileri ve ayarlar silinir. Bootloader\'ın kilidi açıldıktan sonra 16 KB seçeneğinin etkinleştirilmesi için iki kez yeniden başlatma yapılması gerekir. Bu moddayken tek bir yeniden başlatma işlemiyle 4 KB ve 16 KB modları arasında geçiş yapabilirsiniz. Bu modlarda bazı özellikler devre dışı bırakılacağı için bazı uygulamalar çalışmayabilir. Cihazı üretim moduna döndürmek için 4 KB moduna geri dönmeniz ve cihazda OEM/bootloader kilidini etkinleştirmeniz gerekir. Bu durumda cihaz fabrika ayarlarına sıfırlanır. Lütfen bootloader\'ın kilidini açıp tekrar deneyin. Bu işlemle ilgili talimatları görmek için <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> adresine gidin."</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4 KB sayfadan bağımsız modunu kullanıyorsunuz"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Sayfadan bağımsız moddaki 4 KB modundasınız. Bu modda yazılım bütünlüğü garanti edilemez ve bootloader\'ın kilidi açıkken telefonda saklanan veriler risk altında olabilir. Bu modlarda bazı özellikler devre dışı bırakılacağı için bazı uygulamalar çalışmayabilir. Üretim moduna tekrar girmek için cihazın bootloader\'ını kilitlemeniz gerekir. Daha fazla bilgi için dokunun."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Sayfadan bağımsız moddaki 4 KB modundasınız. Bu modda yazılım bütünlüğü garanti edilemez ve bootloader\'ın kilidi açıkken telefonda saklanan veriler risk altında olabilir. Bu modlarda bazı özellikler devre dışı bırakılacağı için bazı uygulamalar çalışmayabilir. Üretim moduna tekrar girmek için cihazın bootloader\'ını kilitlemeniz gerekir. Bu durumda cihaz tekrar fabrika ayarlarına sıfırlanır ve üretim ayarlarına geri döner. Cihaz başarılı bir şekilde Android\'de başlatıldıktan sonra Geliştirici seçeneklerinde OEM kilit açma özelliğini devre dışı bırakın. Cihaz Android\'de başlatılamıyorsa veya kararsızsa cihazı <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> adresindeki en güncel fabrika ayarı görüntüleriyle yeniden yükleyin veya <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> adresine gidip \"Cihazı Temizle\", \"Bootloader\'ı Kilitle\" ve \"Tüm bölümleri zorla yükle\"yi seçin."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16 KB sayfadan bağımsız modunu kullanıyorsunuz"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Sayfadan bağımsız moddaki 16 KB modundasınız. Bu modda yazılım bütünlüğü garanti edilemez ve bootloader\'ın kilidi açıkken telefonda saklanan veriler risk altında olabilir. Bu modlarda bazı özellikler devre dışı bırakılacağı için bir takım uygulamalar çalışmayabilir. Üretim moduna tekrar girmek için 4 KB moduna geçtikten sonra cihazın bootloader\'ını kilitlemeniz gerekir. Daha fazla bilgi için dokunun."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Sayfadan bağımsız moddaki 16 KB modundasınız. Bu modda yazılım bütünlüğü garanti edilemez ve bootloader\'ın kilidi açıkken telefonda saklanan veriler risk altında olabilir. Bu modlarda bazı özellikler devre dışı bırakılacağı için bir takım uygulamalar çalışmayabilir. Üretim moduna tekrar girmek için 4 KB moduna geçtikten sonra cihazın bootloader\'ını kilitlemeniz gerekir. Bu durumda cihaz tekrar fabrika ayarlarına sıfırlanır ve üretim ayarlarına geri döner. Cihaz başarılı bir şekilde Android\'de başlatıldıktan sonra Geliştirici seçeneklerinde OEM kilit açma özelliğini devre dışı bırakın. Cihaz Android\'de başlatılamıyorsa veya kararsızsa cihazı <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> adresindeki en güncel fabrika ayarı görüntüleriyle yeniden yükleyin veya <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> adresine gidip \"Cihazı Temizle\", \"Bootloader\'ı Kilitle\" ve \"Tüm bölümleri zorla yükle\"yi seçin."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 KB Sayfadan Bağımsız Mod"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Devamı"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Hata raporu işleyici"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Tabletiniz yuvaya yerleştirildiğinde ekranınızda nelerin görünmesini istediğinizi seçin. Ekran koruyucu kullanıldığında cihazınız daha fazla enerji tüketebilir."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Özelleştir"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Özelleştir <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Serbest biçimli desteğin etkinleştirilmesi için yeniden başlatma gerekir."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"İkincil ekranlarda masaüstü modunu zorlamak için yeniden başlatma gerekir."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Eski serbest biçimli pencereleme desteğinin etkinleştirilmesi için yeniden başlatma gerekir."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Serbest biçimli pencereleme desteğini değiştirmek için yeniden başlatma gerekir."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"İkincil ekranlarda serbest biçimli pencerelemeyi zorlamak için yeniden başlatma gerekir."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Şimdi yeniden başlat"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Sonra yeniden başlat"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Üç Boyutlu Ses"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index de099d8..89a223c 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додано обличчя та годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додано обличчя, відбиток пальця та годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додано обличчя, відбитки пальців і годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Це потрібно, оскільки ввімкнено перевірку особи"</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>
@@ -1631,7 +1632,7 @@
<string name="about_settings_summary" msgid="4831942939227432513">"Переглянути правову інф-ю, стан, версію ПЗ"</string>
<string name="legal_information" msgid="7509900979811934843">"Правова інформація"</string>
<string name="manual" msgid="3651593989906084868">"Посібник"</string>
- <string name="regulatory_labels" msgid="5960251403367154270">"Сертифікації"</string>
+ <string name="regulatory_labels" msgid="5960251403367154270">"Нормативні етикетки"</string>
<string name="safety_and_regulatory_info" msgid="8285048080439298528">"Посібник із безпеки й нормативних вимог"</string>
<string name="copyright_title" msgid="83245306827757857">"Автор. право"</string>
<string name="license_title" msgid="8745742085916617540">"Ліцензія"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Опції"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Доступність"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Фізична клавіатура"</string>
- <string name="show_ime" msgid="4334255501724746849">"Використовувати екранну клавіатуру"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Залишати її на екрані, коли активна фізична клавіатура"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Ігнорувати повторне натискання"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Клавіатура ігнорує кілька натискань однієї клавіші протягом <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мс"</string>
<string name="slow_keys" msgid="2891452895499690837">"Повільні клавіші"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Усе одно продовжити"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Скасувати"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Налаштування збільшення"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Переміщуйте лупу одним пальцем"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Проводьте одним пальцем, щоб переміщатись екраном"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Переміщуйте область збільшення, перетягуючи одним пальцем."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Переміщуйте область збільшення, перетягуючи двома пальцями."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Недоступно, коли збільшено лише частину екрана"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Торкніться кнопки, щоб збільшити вміст"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Щоб краще роздивитися вміст екрана, його можна наблизити."</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Щоб наблизити зображення:</b><br/> {0,number,integer}. Активуйте збільшення, скориставшись призначеною для цього кнопкою чи відповідним жестом.<br/> {1,number,integer}. Торкніться екрана.<br/> {2,number,integer}. Щоб перейти до іншої області на екрані, потягніть по ньому двома пальцями.<br/> {3,number,integer}. Зведіть або розведіть два пальці, щоб змінити масштаб.<br/> {4,number,integer}. Вимкніть збільшення, скориставшись призначеною для цього кнопкою чи відповідним жестом.<br/><br/> <b>Щоб ненадовго наблизити зображення:</b><br/> {0,number,integer}. Переконайтеся, що вибрано тип збільшення \"На весь екран\".<br/> {1,number,integer}. Активуйте збільшення, скориставшись призначеною для цього кнопкою чи відповідним жестом.<br/> {2,number,integer}. Натисніть і втримуйте будь-яке місце на екрані.<br/> {3,number,integer}. Щоб переглянути іншу область на екрані, пересуньте палець.<br/> {4,number,integer}. Підніміть палець, щоб припинити збільшення."</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Для цього:</b><br/> {0,number,integer}. Активуйте збільшення, скориставшись призначеною для цього кнопкою чи відповідним жестом.<br/> {1,number,integer}. Торкніться екрана.<br/> {2,number,integer}. Щоб перейти до іншої області на екрані, проведіть по ньому двома пальцями.<br/> {3,number,integer}. Зведіть два пальці, щоб змінити масштаб.<br/> {4,number,integer}. Вимкніть збільшення за допомогою швидкої команди.<br/><br/> Ви також можете тимчасово збільшувати масштаб і не тільки."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Для цього:</b><br/> {0,number,integer}. Активуйте збільшення, скориставшись призначеною для цього кнопкою чи відповідним жестом.<br/> {1,number,integer}. Торкніться екрана.<br/> {2,number,integer}. Щоб перейти до іншої області на екрані, проведіть по ньому одним або двома пальцями.<br/> {3,number,integer}. Зведіть два пальці, щоб змінити масштаб.<br/> {4,number,integer}. Вимкніть збільшення за допомогою швидкої команди.<br/><br/> Ви також можете тимчасово збільшувати масштаб і не тільки."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Коли функцію збільшення ввімкнено, ви можете наближувати вміст на екрані.\n\n"<b>"Щоб наблизити вміст"</b>", увімкніть збільшення, а потім торкніться будь-якого місця на екрані.\n"<ul><li>"Щоб прокрутити вміст, проведіть по екрану принаймні двома пальцями"</li>\n<li>"Щоб змінити масштаб, стисніть або розведіть принаймні два пальці"</li></ul>\n\n<b>"Щоб тимчасово збільшити вміст"</b>", увімкніть збільшення, а потім натисніть і утримуйте будь-яке місце на екрані.\n"<ul><li>"Пересувайте палець, щоб переміщатись екраном"</li>\n<li>"Підніміть палець, щоб знову зменшити елемент"</li></ul>\n\n"Масштабування не підтримується на клавіатурі та панелі навігації."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Сторінка <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> з <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Швидка дія кнопкою функцій доступності"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Створити режим"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Спеціальний"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Обмеження сповіщень"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Увімкнути режим \"Не турбувати\""</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Звуки будильників і медіа можуть переривати"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Налаштуйте розклад"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Розклад"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> год, <xliff:g id="MINUTES">%2$d</xliff:g> хв"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Вмикати автоматично"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Розклад"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Вимикати звук телефона в певний час"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Налаштувати правила режиму \"Не турбувати\""</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"відкрити сповіщення"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Дозволити відкладання сповіщень"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Сповіщення на значках додатків"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Пакети сповіщень"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Спливаючі чати"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Спливаючі чати"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Показувати цей чат у спливаючому сповіщенні"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Усі"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дозволити додаткам замінювати режим \"Не турбувати\""</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Додатки, які можуть переривати"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Виберіть інші додатки"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Футляр"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Акумулятор"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Панель налаштувань"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Примусово застосувати режим робочого столу"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Примусово застосувати експериментальний режим робочого столу на додаткових екранах"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Увімкнути вікна змінного розміру"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Увімкнути підтримку вікон змінного розміру."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Увімкнути вікна змінного розміру на другому екрані"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Увімкнути вікна змінного розміру лише на додатковому екрані."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Дозволити немасштабовані додатки в багатоекранному режимі"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Дає змогу користуватися в багатоекранному режимі додатками, розмір яких не можна змінити"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Замінити примусовий темний режим"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Щоб використовувати режим для розробників зі сторінками розміром 16 КБ, розділ даних на цьому пристрої потрібно відформувати у файловій системі ext4. У цьому режимі цілісність програмного забезпечення не гарантується, і будь-які дані, що зберігаються на телефоні, поки завантажувач операційної системи розблоковано, можуть бути під загрозою. Після цього для активації режиму 16 КБ потрібно буде ще раз перезапустити пристрій. Коли ви перейдете в цей режим, то для зміни режиму розміру сторінки з 16 КБ на 4 КБ та навпаки пристрій потрібно буде перезапустити лише один раз. Деякі функції в цих режимах буде вимкнено, тому зможуть працювати не всі додатки. Щоб повернути пристрій у виробничий режим, вам буде потрібно повернутися в режим 4 КБ й заблокувати завантажувач операційної системи. Після цього налаштування пристрою буде скинуто. Коли ОС Android завантажиться, вимкніть розблокування завантажувача в параметрах розробника. Після підтвердження на пристрої буде очищено всі дані, а файлову систему буде змінено на ext4. Коли цей процес завершиться, знову ввімкніть режим із розміром сторінок 16 КБ."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Видалити всі дані"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Не вдалося очистити розділ даних і переформатувати на ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Потрібне розблокування завантажувача операційної системи"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Щоб використовувати режим для розробників зі сторінками розміром 16 КБ на цьому пристрої, необхідно розблокувати завантажувач операційної системи. У цьому режимі цілісність програмного забезпечення не гарантується, і будь-які дані, що зберігаються на телефоні, поки завантажувач операційної системи розблоковано, можуть бути під загрозою. Під час активації режиму 16 КБ усі дані й налаштування користувача буде очищено. Коли завантажувач операційної системи буде розблоковано, для активації режиму 16 КБ потрібно буде перезапустити пристрій двічі. Коли ви перейдете в цей режим, то для зміни режиму розміру сторінки з 16 КБ на 4 КБ та навпаки пристрій потрібно буде перезапустити лише один раз. Деякі функції в цих режимах буде вимкнено, тому зможуть працювати не всі додатки. Щоб повернути пристрій у виробничий режим, вам буде потрібно повернутися в режим 4 КБ й заблокувати завантажувач операційної системи. Після цього налаштування пристрою буде скинуто. Докладні вказівки наведено на сторінці <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Режим, незалежний від розміру сторінок, з ядром 4 КБ"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Ви працюєте в режимі, незалежному від розміру сторінок, з ядром 4 КБ. Цілісність програмного забезпечення не гарантується, і будь-які дані, що зберігаються на телефоні, поки завантажувач ОС розблоковано, можуть бути під загрозою. Деякі функції буде вимкнено, тому працюватимуть не всі додатки. Щоб повернутися у виробничий режим, заблокуйте завантажувач ОС пристрою."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Ви працюєте в режимі, незалежному від розміру сторінок, з ядром для сторінок 4 КБ. У цьому режимі цілісність програмного забезпечення не гарантується, і будь-які дані, що зберігаються на телефоні, поки завантажувач операційної системи розблоковано, можуть бути під загрозою. Деякі функції в цих режимах буде вимкнено, тому зможуть працювати не всі додатки. Щоб повернутися у виробничий режим, вам потрібно заблокувати завантажувач операційної системи пристрою. Тоді налаштування пристрою знову буде скинуто й відновляться виробничі налаштування. Коли ОС Android завантажиться на пристрій, вимкніть розблокування завантажувача в параметрах розробника. Якщо ОС Android не завантажується на пристрій або працює нестабільно, відновіть на пристрої останні заводські образи (завантаживши їх звідси: <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>) або перейдіть на сторінку <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> і виберіть \"Очистити пристрій\", \"Заблокувати завантажувач операційної системи\" й \"Примусово оновити всі розділи\"."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Режим, незалежний від розміру сторінок, з ядром 16 КБ"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Ви працюєте в режимі, що не залежить від розміру сторінки, з ядром для сторінок 16 КБ. У цьому режимі цілісність програмного забезпечення не гарантується, і будь-які дані, що зберігаються на телефоні, поки завантажувач операційної системи розблоковано, можуть бути під загрозою. Деякі функції в цих режимах буде вимкнено, тому зможуть працювати не всі додатки. Щоб повернутися у виробничий режим, вам потрібно знову перейти в режим 4 КБ й заблокувати завантажувач операційної системи пристрою. Торкніться, щоб дізнатися більше."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Ви працюєте в режимі, що не залежить від розміру сторінки, з ядром для сторінок 16 КБ. У цьому режимі цілісність програмного забезпечення не гарантується, і будь-які дані, що зберігаються на телефоні, поки завантажувач операційної системи розблоковано, можуть бути під загрозою. Деякі функції в цих режимах буде вимкнено, тому зможуть працювати не всі додатки. Щоб повернутися у виробничий режим, вам потрібно знову перейти в режим 4 КБ й заблокувати завантажувач операційної системи пристрою. Тоді налаштування пристрою знову буде скинуто й відновляться виробничі налаштування. Коли ОС Android завантажиться на пристрій, вимкніть розблокування завантажувача в параметрах розробника. Якщо ОС Android не завантажується на пристрій або працює нестабільно, відновіть на пристрої останні заводські образи (завантаживши їх звідси: <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>) або перейдіть на сторінку <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> і виберіть \"Очистити пристрій\", \"Заблокувати завантажувач операційної системи\" й \"Примусово оновити всі розділи\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Режим, незалежний від розміру сторінок, з ядром для сторінок 16 КБ"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Докладніше"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Обробник звітів про помилки"</string>
@@ -5190,8 +5188,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Виберіть, що має відображатися на екрані, коли планшет у док-станції. Із заставкою ваш пристрій може споживати більше енергії."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Налаштувати"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Налаштувати <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Щоб увімкнути підтримку довільного формату, перезапустіть пристрій."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Щоб примусово застосувати режим робочого столу на додаткових екранах, перезапустіть пристрій."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Щоб увімкнути підтримку старого формату вікон змінного розміру, перезапустіть пристрій."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Щоб змінити підтримку вікон змінного розміру, перезапустіть пристрій."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Щоб примусово ввімкнути вікна змінного розміру на додаткових екранах, перезапустіть пристрій."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Перезапустити зараз"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Перезапустити пізніше"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Просторове звучання"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 197cf7a..4533859 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"چہرہ اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"چہرہ، فنگر پرنٹ اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"چہرہ، فنگر پرنٹس اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"یہ ضروری ہے کیونکہ شناخت چیک آن ہے"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"اختیارات"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"ایکسیسبیلٹی"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"فزیکل کی بورڈ"</string>
- <string name="show_ime" msgid="4334255501724746849">"آن اسکرین کی بورڈ کا استعمال کریں"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"جب فزیکل کی بورڈ فعال ہو تو اس کو اسکرین پر رکھیں"</string>
<string name="bounce_keys" msgid="7419450970351743904">"باؤنس کلیدیں"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"کی بورڈ <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms کے اندر ایک ہی کلید کو فوری طور پر بار بار دبائے جانے کو نظر انداز کرتا ہے"</string>
<string name="slow_keys" msgid="2891452895499690837">"سلو کلیدیں"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"بہر حال جاری رکھیں"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"منسوخ کریں"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"میگنیفکیشن کی ترتیبات"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 انگلی سے میگنیفائر کو حرکت دیں"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"اسکرین کے ارد گرد گھمانے کیلئے 1 انگلی سے گھسیٹیں"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ایک انگلی گھسیٹ کر میگنیفیکیشن ایریا کو منتقل کریں۔"</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"دو انگلیوں کو گھسیٹ کر میگنیفیکیشن ایریا کو منتقل کریں۔"</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"اسکرین کے صرف میگنفائی کرنے والے حصے کے دوران دستیاب نہیں ہے"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"زوم کرنے کیلئے ایک بٹن پر تھپتھپائیں"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"مواد کو بڑا کرنے کے لیے اسکرین پر فوری طور پر زوم ان کریں"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>زوم ان کرنے کے لیے:</b><br/> {0,number,integer}۔ میگنیفکیشن شروع کرنے کے لیے شارٹ کٹ کا استعمال کریں<br/> {1,number,integer}۔ اسکرین پر تھپتھپائیں<br/> {2,number,integer}۔ اسکرین پر اِدھر اُدھر حرکت کرنے کے لیے 2 انگلیوں سے گھسیٹیں<br/> {3,number,integer}۔ زوم کو ایڈجسٹ کرنے کے لیے 2 انگلیوں سے چٹکی بھریں<br/> {4,number,integer}۔ میگنیفکیشن بند کرنے کے لیے شارٹ کٹ کا استعمال کریں<br/><br/> <b> عارضی طور پر زوم ان کرنے کے لیے:</b><br/> {0,number,integer}۔ یقینی بنائیں کہ آپ کی میگنیفیکیشن کی قسم فُل اسکرین پر سیٹ ہے<br/> {1,number,integer}۔ میگنیفکیشن شروع کرنے کے لیے شارٹ کٹ کا استعمال کریں<br/> {2,number,integer}۔ اسکرین پر کسی بھی جگہ پر ٹچ کریں اور دبائیں رکھیں<br/> {3,number,integer}۔ اسکرین پر اِدھر اُدھر حرکت کرنے کے لیے انگلی کو گھسیٹیں<br/> {4,number,integer}۔ میگنیفکیشن بند کرنے کے لیے انگلی اٹھائيں"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>زوم ان کرنے کے لیے:</b><br/> {0,number,integer}۔ میگنیفکیشن شروع کرنے کے لیے شارٹ کٹ کا استعمال کریں<br/> {1,number,integer}۔ اسکرین پر تھپتھپائیں<br/> {2,number,integer}۔ اسکرین پر اِدھر اُدھر حرکت کرنے کے لیے 2 انگلیوں سے گھسیٹیں<br/> {3,number,integer}۔ زوم کو ایڈجسٹ کرنے کے لیے 2 انگلیوں سے چٹکی بھریں<br/> {4,number,integer}۔ میگنیفکیشن کو بند کرنے کے لیے شارٹ کٹ استعمال کریں<br/><br/> آپ عارضی طور پر زوم ان بھی کر سکتے ہیں اور بہت کچھ کر سکتے ہیں۔"</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>زوم ان کرنے کے لیے:</b><br/> {0,number,integer}۔ میگنیفکیشن شروع کرنے کے لیے شارٹ کٹ کا استعمال کریں<br/> {1,number,integer}۔ اسکرین پر تھپتھپائیں<br/> {2,number,integer}۔ اسکرین پر اِدھر اُدھر حرکت کرنے کے لیے 1 یا 2 انگلیوں سے گھسیٹیں<br/> {3,number,integer}۔ زوم کو ایڈجسٹ کرنے کے لیے 2 انگلیوں سے چٹکی بھریں<br/> {4,number,integer}۔ میگنیفکیشن کو بند کرنے کے لیے شارٹ کٹ استعمال کریں<br/><br/> آپ عارضی طور پر زوم ان بھی کر سکتے ہیں اور بہت کچھ کر سکتے ہیں۔"</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"جب میگنیفکیشن آن ہو، تو آپ اپنی اسکرین پر زوم ان کرسکتے ہیں۔\n\n"<b>"زوم کرنے کے لیے"</b>"، میگنیفکیشن شروع کریں، پھر اسکرین پر کہیں بھی تھپتھپائیں۔\n"<ul><li>" اسکرول کرنے کے لیے 2 یا زائد انگلیوں سے گھسیٹیں"</li>\n<li>"زوم ایڈجیسٹ کرنے کے لیے 2 یا زائد انگلیوں سے چٹکی بھریں"</li></ul>\n\n<b>"عارضی طور پر زوم کرنے کے لیے"</b>"، میگنیفکیشن شروع کریں، پھر اسکرین پر کہیں بھی ٹچ اور ہولڈ کریں۔\n"<ul><li>"اسکرین کے اردگرد منتقل کرنے کے لیے گھسیٹیں"</li>\n<li>"زوم آؤٹ کرنے کے لیے انگلی اٹھائیں"</li></ul>\n\n"آپ کی بورڈ یا نیویگیشن بار پر زوم ان نہیں کرسکتے۔"</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"صفحہ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> از <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ایکسیسبیلٹی بٹن کا شارٹ کٹ"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"موڈ تخلیق کریں"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"حسب ضرورت"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"مداخلتوں کی حد مقرر کریں"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'ڈسٹرب نہ کریں\' کو آن کریں"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"الارم اور میڈیا کی آوازیں رکاوٹ ڈال سکتی ہیں"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"شیڈول سیٹ کریں"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"شیڈول کریں"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> گھنٹہ، <xliff:g id="MINUTES">%2$d</xliff:g> منٹ"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"خودکار طور پر آن کریں"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"شیڈول"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"مخصوص اوقات میں فون خاموش کر دیں"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"\'ڈسٹرب نہ کریں\' اصول سیٹ کریں"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"اطلاع کھولیں"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"اطلاع کی اسنوزنگ کی اجازت دیں"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"ایپ آئیکن پر اطلاعاتی ڈاٹ"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"بلبلے"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"بلبلے"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"یہ گفتگو ببل کریں"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"سبھی"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ایپس کو اوور رائیڈ کرنے کی اجازت دیں"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ایپس جو مداخلت کر سکتی ہیں"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"مزید ایپس منتخب کریں"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"کیس"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"بیٹری"</string>
<string name="settings_panel_title" msgid="346363079938069215">"ترتیبات پینل"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"ڈیسک ٹاپ موڈ فورس کریں"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ثانوی ڈسپلیز پر تجرباتی ڈیسک ٹاپ موڈ فورس کریں"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"فری فارم ونڈوز فعال کریں"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"فریفارم ونڈوز کے لیے سپورٹ کو فعال کریں۔"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"دوسرے ڈسپلے پر فریفارم ونڈونگ کو فعال کریں"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"فریفارم ونڈوز کو صرف سیکنڈری ڈسپلے پر فعال کریں"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ملٹی ونڈو میں سائز کی ناقابل تبدیلی کو فعال کریں"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ناقابل تبدیل سائز والی ایپس کو ملٹی ونڈو میں ہونے کی اجازت ہوتی ہے"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"force-dark کو اوور رائیڈ کریں"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16KB ڈویلپر اختیار استعمال کرنے سے پہلے اس آلہ کے ڈیٹا پارٹیشن کو ext4 میں تبدیل کرنے کی ضرورت ہے۔ اس موڈ میں سافٹ ویئر کی درستگی کی ضمانت نہیں دی جا سکتی ہے، اور بوٹ لوڈر کے غیر مقفل ہونے کے دوران فون پر اسٹور کردہ کوئی بھی ڈیٹا خطرے میں ہو سکتا ہے۔ 16KB اختیار کو فعال کرنے کے لیے اس کے بعد ایک اور ریبوٹ کی ضرورت ہوگی۔ اس موڈ میں آنے کے بعد آپ ایک ہی ریبوٹ میں 4KB اور 16KB موڈ کے درمیان سوئچ کر سکتے ہیں۔ ان موڈز میں کچھ خصوصیات غیر فعال ہو جائیں گی، اس لیے ہو سکتا ہے کچھ ایپلیکیشنز کام نہ کریں۔ آلہ کو پروڈکشن موڈ میں واپس کرنے کے لیے، آپ کو 4KB موڈ پر واپس جانا ہوگا اور پھر بوٹ لوڈر کو لاک کرنا ہوگا، جو فیکٹری آلہ کو ری سیٹ کرتا ہے۔ آلہ کے Android میں کامیابی کے ساتھ بوٹ ہونے کے بعد، ڈیولپر کے اختیارات میں OEM انلاکنگ کو غیر فعال کریں۔ آلہ کو صاف کر دیا جائے گا اور تصدیق کے بعد فائل سسٹم کو ext4 میں تبدیل کر دیا جائے گا۔ اس کے مکمل ہونے کے بعد، براہ کرم 16KB کو دوبارہ فعال کرنے کے لیے واپس آئیں۔"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"سبھی ڈیٹا مٹائیں"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ڈیٹا پارٹیشن کو ext4 پر دوبارہ فارمیٹ کرنے اور صاف کرنے میں ناکام۔"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"بوٹ لوڈر ان لاک درکار ہے"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"اس آلہ کو 16KB ڈویلپر اختیار استعمال کرنے سے پہلے بوٹ لوڈر کو غیر مقفل کرنے کی ضرورت ہے۔ اس موڈ میں سافٹ ویئر کی درستگی کی ضمانت نہیں دی جا سکتی ہے، اور بوٹ لوڈر کے غیر مقفل ہونے کے دوران فون پر اسٹور کردہ کوئی بھی ڈیٹا خطرے میں ہو سکتا ہے۔ 16KB موڈ کو فعال کرنے پر صارف کا تمام ڈیٹا اور ترتیبات صاف کر دی جائیں گی۔ بوٹ لوڈر غیر مقفل ہونے کے بعد 16KB اختیار کو چالو کرنے کے لیے دو بار ریبوٹس کی ضرورت ہوگی۔ اس موڈ میں آنے کے بعد آپ ایک ہی ریبوٹ میں 4KB اور 16KB موڈ کے درمیان سوئچ کر سکتے ہیں۔ ان موڈز میں کچھ خصوصیات غیر فعال ہو جائیں گی، اس لیے ہو سکتا ہے کچھ ایپلیکیشنز کام نہ کریں۔ آلہ کو پروڈکشن موڈ میں واپس کرنے کے لیے، آپ کو 4KB موڈ پر واپس جانا ہوگا اور پھر OEM/بوٹ لوڈر کو لاک کرنا ہوگا (جو آلہ کو فیکٹری ری سیٹ کرتا ہے)۔ براہ کرم بوٹ لوڈر کو غیر مقفل کریں اور دوبارہ کوشش کریں۔ آپ اسے کرنے کے طریقے سے متعلق ہدایات یہاں دیکھ سکتے ہیں: <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"4KB صفحہ ایگنوسٹک موڈ کا استعمال"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"آپ صفحہ ایگنوسٹک موڈ کے 4KB موڈ میں ہیں۔ اس موڈ میں سافٹ ویئر کی درستگی کی ضمانت نہیں دی جا سکتی ہے، اور بوٹ لوڈر کے غیر مقفل ہونے کے دوران فون پر اسٹور کردہ کوئی بھی ڈیٹا خطرے میں ہو سکتا ہے۔ ان موڈز میں کچھ خصوصیات غیر فعال ہو جائیں گی، اس لیے ہو سکتا ہے کچھ ایپلیکیشنز کام نہ کریں۔ پروڈکشن موڈ میں دوبارہ داخل ہونے کے لیے، آپ کو آلے کے بوٹ لوڈر کو مقفل کرنا ہوگا۔ مزید پڑھنے کیلئے تھپتھپائیں۔"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"آپ صفحہ ایگنوسٹک موڈ کے 4KB موڈ میں ہیں۔ اس موڈ میں سافٹ ویئر کی درستگی کی ضمانت نہیں دی جا سکتی ہے، اور بوٹ لوڈر کے غیر مقفل ہونے کے دوران فون پر اسٹور کردہ کوئی بھی ڈیٹا خطرے میں ہو سکتا ہے۔ ان موڈز میں کچھ خصوصیات غیر فعال ہو جائیں گی، اس لیے ہو سکتا ہے کچھ ایپلیکیشنز کام نہ کریں۔ پروڈکشن موڈ میں دوبارہ داخل ہونے کے لیے، آپ کو آلے کے بوٹ لوڈر کو مقفل کرنا ہوگا۔ یہ آلہ کو دوبارہ فیکٹری ری سیٹ کر دے گا اور اسے پروڈکشن ترتیبات پر بحال کر دے گا۔ آلہ کے Android میں کامیابی کے ساتھ بوٹ ہونے کے بعد، ڈیولپر کے اختیارات میں OEM انلاکنگ کو غیر فعال کریں۔ اگر آلہ Android میں بوٹ ہونے میں ناکام ہو جاتا ہے یا غیر مستحکم ہو جاتا ہے، تو <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> سے تازہ ترین فیکٹری امیجز کے ساتھ آلہ کو دوبارہ فلیش کریں یا <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> استعمال کریں اور \'آلہ کو صاف کریں\'، \'بوٹ لوڈر کو مقفل کریں\' اور \'سبھی پارٹیشنز کو فورس فلیش کریں\' کو منتخب کریں۔"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"16KB صفحہ ایگنوسٹک موڈ کا استعمال"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"آپ صفحہ ایگنوسٹک موڈ کے 16KB موڈ میں ہیں۔ اس موڈ میں سافٹ ویئر کی درستگی کی ضمانت نہیں دی جا سکتی، اور بوٹ لوڈر کے غیر مقفل ہونے کے دوران فون پر اسٹور کردہ کسی بھی ڈیٹا کو خطرہ لاحق ہو سکتا ہے۔ ان موڈز میں کچھ خصوصیات غیر فعال ہو جائیں گی، اسلئے ہو سکتا ہے کہ کچھ ایپلیکیشنز کام نہ کریں۔ پروڈکشن موڈ میں دوبارہ داخل ہونے کے لیے، آپ کو 4KB موڈ پر واپس جانا ہوگا اور پھر آلہ کے بوٹ لوڈر کو مقفل کرنا ہوگا۔ مزید پڑھنے کیلئے تھپتھپائیں۔"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"آپ صفحہ ایگنوسٹک موڈ کے 16KB موڈ میں ہیں۔ اس موڈ میں سافٹ ویئر کی درستگی کی ضمانت نہیں دی جا سکتی، اور بوٹ لوڈر کے غیر مقفل ہونے کے دوران فون پر اسٹور کردہ کسی بھی ڈیٹا کو خطرہ لاحق ہو سکتا ہے۔ ان موڈز میں کچھ خصوصیات غیر فعال ہو جائیں گی، اسلئے ہو سکتا ہے کہ کچھ ایپلیکیشنز کام نہ کریں۔ پروڈکشن موڈ میں دوبارہ داخل ہونے کے لیے، آپ کو 4KB موڈ پر واپس جانا ہوگا اور پھر آلہ کے بوٹ لوڈر کو مقفل کرنا ہوگا۔ یہ آلہ کو دوبارہ فیکٹری ری سیٹ کر دے گا اور اسے پروڈکشن ترتیبات پر بحال کر دے گا۔ آلے کے Android میں کامیابی کے ساتھ بوٹ ہونے کے بعد، ڈویلپر کے اختیارات میں OEM انلاکنگ کو غیر فعال کریں۔ اگر آلہ Android میں بوٹ ہونے میں ناکام ہو جاتا ہے یا غیر مستحکم ہو جاتا ہے، تو <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> سے تازہ ترین فیکٹری امیجز کے ساتھ آلہ کو دوبارہ فلیش کریں یا <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> استعمال کریں اور \'آلہ کو صاف کریں\'، \'بوٹ لوڈر کو مقفل کریں\' اور \'سبھی پارٹیشنز کو فورس فلیش کریں\' کو منتخب کریں۔"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB صفحہ ایگنوسٹک موڈ"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"مزید پڑھیں"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"بگ رپورٹ کا ہینڈلر"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"منتخب کریں کہ آپ کے ٹیبلیٹ کو ڈاک سے منسلک کئے جانے پر آپ کو اپنی اسکرین پر کیا دکھائی دے۔ اسکرین سیور کا استعمال کرنے پر آپ کا آلہ زیادہ توانائی استعمال کر سکتا ہے۔"</string>
<string name="customize_button_title" msgid="1110284655990203359">"حسب ضرورت بنائیں"</string>
<string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> کو حسب ضرورت بنائیں"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"فری فارم سپورٹ کو فعال کرنے کے لیے ریبوٹ درکار ہے۔"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"سیکنڈری ڈسپلیز پر ڈیسک ٹاپ موڈ فورس کرنے کے لیے ریبوٹ درکار ہے۔"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"legacy فریفارم ونڈونگ سپورٹ کو فعال کرنے کے لیے ریبوٹ درکار ہے۔"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"فری فارم ونڈوئنگ سپورٹ تبدیل کرنے کے لیے ریبوٹ درکار ہے۔"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"ثانوی ڈسپلیز پر زبردستی فری فارم ونڈوئینگ کے لیے ریبوٹ درکار ہے۔"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ابھی ریبوٹ کریں"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"بعد میں ریبوٹ کریں"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"اسپیشیئل آڈیو"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index ed83fe9..4d11da6 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Yuz va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Yuz, barmoq izi va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Yuz, barmoq izlari va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Bu shaxsni tasdiqlash yoniqligi uchun talab etiladi"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Variantlar"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Qulayliklar"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Tashqi klaviatura"</string>
- <string name="show_ime" msgid="4334255501724746849">"Ekrandagi klaviaturadan foydalanish"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Tashqi klaviatura ulanganida ekranda chiqib turadi"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Qayta bosishni nazorat qilish"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms ichida tugmalar takroriy bosilsa, eʼtiborsiz qoldiriladi"</string>
<string name="slow_keys" msgid="2891452895499690837">"Sekin tugmalar"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Rejim yarating"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Maxsus"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Bildirishnomalarni kamaytirish"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Bezovta qilinmasin rejimini yoqing"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Bezovta qilinmasin rejimi signal va media tovushlari uchun ishlamaydi"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Jadval tuzing"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Jadval"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> soat <xliff:g id="MINUTES">%2$d</xliff:g> daqiqa"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Avtomatik yoqish"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Jadval"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Muayyan vaqtlarda ovozsiz qilish"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Bezovta qilmaslik qoidalari"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"bildirishnomani ochish"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Bildirishnomalarni keyinga qoldirish"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Ilova belgisi ustida bildirishnoma belgisi"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Bildirishnoma jamlanmalari"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bulutchalar"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bulutchalar"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bu suhbatni bulutchaga chiqarish"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Hammasi"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Ilovalarga Bezovta qilinmasin rejimiga amal qilmasligiga ruxsat berish"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Bezovta qilinmasin rejimi ishlamaydigan ilovalar"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Boshqa ilovalarni tanlang"</string>
@@ -4343,7 +4346,7 @@
<string name="system_navigation_title" msgid="4890381153527184636">"Navigatsiya rejimi"</string>
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"2 tugmali navigatsiya"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Bir ilovadan boshqasiga almashish uchun bosh ekran tugmasi ustida tepaga suring. Barcha ilovalarni koʻrish uchun yana tepaga suring. Avvalgi ekranga qaytish uchun esa Orqaga tugmasini bosing."</string>
- <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Xavfsizlik va favqulodda holatlar"</string>
+ <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Jismoniy xavfsizlik va favqulodda holatlar"</string>
<string name="emergency_dashboard_summary" msgid="401033951074039302">"Favqulodda yordam, tibbiy axborot, ogohlantiruvlar"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Ishorali navigatsiya"</string>
<string name="edge_to_edge_navigation_summary" msgid="818109176611921504">"Bosh ekranga qaytish uchun ekranning pastidan tepaga qarab suring. Bir ilovadan boshqasiga oʻtish uchun pastdan tepaga surib, bosib turing va qoʻyib yuboring. Orqaga qaytish uchun chap yoki oʻng burchakdan teskari tomonga suring."</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Quvvatlash gʻilofi"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batareya"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Sozlamalar paneli"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Desktop rejimini majburiy ochish"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Ikkilamchi displeylarda tajribaviy desktop rejimini majburiy ochish"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Erkin shakldagi oynalarni yoqish"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Erkin shakldagi oynalar uchun dastaklashni yoqish"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Ikkinchi ekranda erkin shakldagi oynalarni yoqish"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Faqat ikkinchi ekranda erkin shakldagi oynalarni yoqish"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Koʻp oynali hajmi oʻzgarmas ilovalarni yoqish"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Hajmi oʻzgarmas ilovalar koʻp oynali rejimda ochilishiga ruxsat beradi."</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Tungi mavzuni yoqish ustidan yozadi"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"16KB dasturchi variantidan foydalanishdan oldin ushbu qurilmaning maʼlumotlar boʻlimi ext4 tizimiga oʻgirilishi kerak. Ushbu rejimda dasturning yaxlitligini kafolatlab boʻlmaydi va bootloader qulfdan chiqarilganda telefonda saqlangan har qanday maʼlumotlar xavf ostida qolishi mumkin. 16 KB rejim faollashtirilgandan keyin yana bir marta qayta yoqishni talab qiladi. Ushbu rejimga almashtirganingizdan keyin bir marta qayta yoqish bilan 4 KB va 16 KB rejimlari orasida almashtirishingiz mumkin. Ayrim funksiyalar bu rejimlarda faolsizlantiriladi, shu sababdan ayrim ilovalar ishlamasligi mumkin. Qurilmani ishchi rejimiga qaytarish uchun siz 4 KB rejimiga qaytishingiz va qurilmani zavod sozlamalariga qaytaradigan bootloaderni qulflashingiz kerak. Qurilma Android tizimiga muvaffaqiyatli yuklangandan keyin Dasturchi sozlamalarida OEM qulfini ochish funksiyasini faolsizlantiring. Tasdiqlangandan keyin qurilma tozalanadi va fayl ext4 tizimiga oʻzgartiriladi. Buni tugatgandan keyin 16 KB rejimni qayta yoqish uchun qaytib keling."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Hamma narsani tozalash"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"ext4 tizimida qayta formatlanmadi va axborot segmentlari tozalanmadi."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Bootloader qulfini ochish zarur"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"16 KB dasturchi variantidan foydalanishdan oldin bu qurilma bootloaderni qulfdan chiqarishi kerak. Ushbu rejimda dasturning yaxlitligini kafolatlab boʻlmaydi va bootloader qulfdan chiqarilganda telefonda saqlangan har qanday maʼlumotlar xavf ostida qolishi mumkin. 16 KB rejimi faollashtirilganda barcha foydalanuvchi maʼlumotlari va sozlamalari tozalab tashlanadi. Bootloader qulfdan chiqarilgandan keyin 16 KB rejimni faollashtirish uchun ikki marta qayta yoqish kerak boʻladi. Ushbu rejimga almashtirganingizdan keyin bir marta qayta yoqish bilan 4 KB va 16 KB rejimlari orasida almashtirishingiz mumkin. Ayrim funksiyalar bu rejimlarda faolsizlantiriladi, shu sababdan ayrim ilovalar ishlamasligi mumkin. Qurilmani ishchi rejimiga qaytarish uchun siz 4 KB rejimiga qaytishingiz va qurilmani zavod sozlamalariga qaytaradigan OEM/bootloaderni qulflashingiz kerak. Bootloaderni qulfdan chiqaring va qaytadan urining. Buni qanday qilish haqida koʻrsatmalar bilan <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a> sahifasi orqali tanishib chiqishingiz mumkin."</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Sahifadan mustaqil 4 KB rejimdan foydalanilmoqda"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Siz sahifadan mustaqil 4 KB rejimdasiz. Ushbu rejimda dasturning yaxlitligini kafolatlab boʻlmaydi va bootloader qulfdan chiqarilganda telefonda saqlangan har qanday maʼlumotlar xavf ostida qolishi mumkin. Ayrim funksiyalar bu rejimlarda faolsizlantiriladi, shu sababdan ayrim ilovalar ishlamasligi mumkin. Ishchi rejimiga qayta kirish uchun qurilmaning bootloaderini qulflashingiz kerak. Batafsil axborot olish uchun bosing."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Siz sahifadan mustaqil 4 KB rejimdasiz. Ushbu rejimda dasturning yaxlitligini kafolatlab boʻlmaydi va bootloader qulfdan chiqarilganda telefonda saqlangan har qanday maʼlumotlar xavf ostida qolishi mumkin. Ayrim funksiyalar bu rejimlarda faolsizlantiriladi, shu sababdan ayrim ilovalar ishlamasligi mumkin. Ishchi rejimiga qayta kirish uchun qurilmaning bootloaderini qulflashingiz kerak. Bu qurilmani zavod sozlamalariga qaytaradi va uni ishchi sozlamalariga qaytaradi. Qurilma Android tizimiga muvaffaqiyatli yuklangandan keyin Dasturchi sozlamalarida OEM qulfini ochish funksiyasini faolsizlantiring. Agar qurilma Android tizimiga yuklanmasa yoki barqaror ishlamasa, qurilmani eng oxirgi dasturning asl tasvirini <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> orqali olib qayta yuklang yoki <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ishlating va “Qurilmani tozalash”, “Bootloaderni qulflash” va “Barcha boʻlimlarni majburiy fleshlash” bandlarini tanlang."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Sahifadan mustaqil 16 KB rejimdan foydalanilmoqda"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Siz sahifadan mustaqil 16 KB rejimdasiz. Ushbu rejimda dasturning yaxlitligini kafolatlab boʻlmaydi va bootloader qulfdan chiqarilganda telefonda saqlangan har qanday maʼlumotlar xavf ostida qolishi mumkin. Ayrim funksiyalar bu rejimlarda faolsizlantiriladi, shu sababdan ayrim ilovalar ishlamasligi mumkin. Ishchi rejimiga qayta kirish uchun siz 4 KB rejimiga qaytishingiz va keyin qurilmaning bootloaderini qulflashingiz kerak. Batafsil axborot olish uchun bosing."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Siz sahifadan mustaqil 16 KB rejimdasiz. Ushbu rejimda dasturning yaxlitligini kafolatlab boʻlmaydi va bootloader qulfdan chiqarilganda telefonda saqlangan har qanday maʼlumotlar xavf ostida qolishi mumkin. Ayrim funksiyalar bu rejimlarda faolsizlantiriladi, shu sababdan ayrim ilovalar ishlamasligi mumkin. Ishchi rejimiga qayta kirish uchun siz 4 KB rejimiga qaytishingiz va keyin qurilmaning bootloaderini qulflashingiz kerak. Bu qurilmani zavod sozlamalariga qaytaradi va uni ishchi sozlamalariga qaytaradi. Qurilma Android tizimiga muvaffaqiyatli yuklangandan keyin Dasturchi sozlamalarida OEM qulfini ochish funksiyasini faolsizlantiring. Agar qurilma Android tizimiga yuklanmasa yoki barqaror ishlamasa, qurilmani eng oxirgi dasturning asl tasvirini <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> orqali olib qayta yuklang yoki <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> ishlating va “Qurilmani tozalash”, “Bootloaderni qulflash” va “Barcha boʻlimlarni majburiy fleshlash” bandlarini tanlang."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 KB sahifadan mustaqil rejim"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Batafsil"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Xatoliklarni xabar qilish vositasi"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Planshet dokka joylanganda ekranda nima chiqishini tanlang. Ekranda lavhasi chiqsa, qurilmangiz koʻproq quvvat sarflashi mumkin."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Moslash"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Moslash: <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Erkin shakllarni yoqish uchun qayta ishga tushirish zarur."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Ikkilamchi displeylar majburan ish stoli rejimida ishlashi uchun qayta ishga tushirish zarur."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Eskirgan erkin shakldagi oynalarni dastaklashni yoqish uchun qayta yoqish talab etiladi."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Erkin shakldagi oynalarni dastaklashni oʻzgartirish uchun qayta yoqish talab etiladi."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Erkin shakldagi oynalarni ikkilamchi displeylarda majburan ochish uchun qayta yoqish talab etiladi."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Hozir qayta ishga tushirish"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Keyinroq qayta ishga tushirish"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Qamrovli ovoz"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 18c7af3..c69156c 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Điều này là cần thiết vì tính năng Kiểm tra danh tính đang bật"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Tuỳ chọn"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Hỗ trợ tiếp cận"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Bàn phím vật lý"</string>
- <string name="show_ime" msgid="4334255501724746849">"Sử dụng bàn phím ảo"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Hiện bàn phím ảo trên màn hình trong khi bàn phím vật lý đang hoạt động"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Phím nảy"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Bàn phím sẽ bỏ qua các lần nhấn nhanh liên tục cùng một phím trong <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> mili giây"</string>
<string name="slow_keys" msgid="2891452895499690837">"Phím chậm"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vẫn tiếp tục"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Huỷ"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Cài đặt phóng to"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Di chuyển kính lúp bằng 1 ngón tay"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Kéo 1 ngón tay để di chuyển xung quanh màn hình."</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Di chuyển vùng phóng to bằng cách kéo một ngón tay."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Di chuyển vùng phóng to bằng cách kéo hai ngón tay."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Không dùng được khi chỉ phóng to một phần màn hình"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Nhấn vào nút để thu phóng"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Nhanh chóng phóng to màn hình để hiển thị nội dung lớn hơn"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Cách phóng to:</b><br/> {0,number,integer}. Dùng phím tắt để bắt đầu phóng to<br/> {1,number,integer}. Nhấn vào màn hình<br/> {2,number,integer}. Kéo 2 ngón tay để di chuyển xung quanh màn hình<br/> {3,number,integer}. Chụm 2 ngón tay để điều chỉnh mức thu phóng<br/> {4,number,integer}. Dùng phím tắt để dừng phóng to<br/><br/> <b>Cách phóng to tạm thời:</b><br/> {0,number,integer}. Hãy nhớ đặt kiểu phóng to thành toàn màn hình<br/> {1,number,integer}. Dùng phím tắt để bắt đầu phóng to<br/> {2,number,integer}. Chạm và giữ một vị trí bất kỳ trên màn hình<br/> {3,number,integer}. Kéo ngón tay để di chuyển xung quanh màn hình<br/> {4,number,integer}. Nhấc ngón tay lên để dừng phóng to"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Cách phóng to:</b><br/> {0,number,integer}. Dùng lối tắt để bắt đầu phóng to<br/> {1,number,integer}. Nhấn vào màn hình<br/> {2,number,integer}. Kéo 2 ngón tay để di chuyển xung quanh màn hình<br/> {3,number,integer}. Chụm 2 ngón tay để điều chỉnh mức thu phóng<br/> {4,number,integer}. Dùng lối tắt để dừng phóng to<br/><br/> Bạn có thể dùng tính năng phóng to tạm thời cùng nhiều tính năng khác."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Cách phóng to:</b><br/> {0,number,integer}. Dùng lối tắt để bắt đầu phóng to<br/> {1,number,integer}. Nhấn vào màn hình<br/> {2,number,integer}. Kéo 1 hoặc 2 ngón tay để di chuyển xung quanh màn hình<br/> {3,number,integer}. Chụm 2 ngón tay để điều chỉnh mức thu phóng<br/> {4,number,integer}. Dùng lối tắt để dừng phóng to<br/><br/> Bạn có thể dùng tính năng phóng to tạm thời cùng nhiều tính năng khác."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Khi tính năng phóng to đang bật, bạn có thể phóng to trên màn hình.\n\n"<b>"Để thu phóng"</b>", hãy mở tính năng phóng to rồi nhấn vào vị trí bất kỳ trên màn hình.\n"<ul><li>"Kéo 2 hoặc nhiều ngón tay để cuộn"</li>\n<li>"Chụm 2 hoặc nhiều ngón tay để điều chỉnh mức thu phóng"</li></ul>\n\n<b>"Để thu phóng tạm thời"</b>", hãy mở tính năng phóng to rồi chạm và giữ vị trí bất kỳ trên màn hình.\n"<ul><li>"Kéo để di chuyển quanh màn hình"</li>\n<li>"Nhấc ngón tay để thu nhỏ"</li></ul>\n\n"Bạn không thể phóng to trên bàn phím hoặc thanh điều hướng."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Trang <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Phím tắt cho nút hỗ trợ tiếp cận"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Tạo một chế độ"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Tuỳ chỉnh"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Hạn chế bị gián đoạn"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Bật chế độ Không làm phiền"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Chuông báo và âm thanh đa phương tiện có thể làm gián đoạn"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Đặt lịch biểu"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Lịch biểu"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> tiếng <xliff:g id="MINUTES">%2$d</xliff:g> phút"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Tự động bật"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Lên lịch"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Tắt tiếng điện thoại vào thời gian nhất định"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Đặt quy tắc Không làm phiền"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"mở thông báo"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Cho phép tạm hoãn thông báo"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Dấu chấm thông báo trên biểu tượng ứng dụng"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Gói thông báo"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bong bóng"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bong bóng"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Hiện cuộc trò chuyện này ở dạng bong bóng"</string>
@@ -3653,7 +3650,7 @@
<string name="nls_feature_read_summary" msgid="1064698238110273593">"Ứng dụng này có thể đọc các thông báo của bạn, bao gồm cả thông tin cá nhân như người liên hệ, tin nhắn và ảnh."</string>
<string name="nls_feature_reply_title" msgid="7925455553821362039">"Trả lời tin nhắn"</string>
<string name="nls_feature_reply_summary" msgid="4492543411395565556">"Ứng dụng này có thể trả lời tin nhắn và thao tác với các nút trong thông báo, bao gồm cả tạm ẩn hoặc loại bỏ thông báo và trả lời cuộc gọi."</string>
- <string name="nls_feature_settings_title" msgid="8208164329853194414">"Thay đổi các chế độ cài đặt"</string>
+ <string name="nls_feature_settings_title" msgid="8208164329853194414">"Thay đổi chế độ cài đặt"</string>
<string name="nls_feature_settings_summary" msgid="3770028705648985689">"Ứng dụng này có thể bật hoặc tắt chế độ Không làm phiền và thay đổi các chế độ cài đặt liên quan."</string>
<string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"Nếu bạn tắt quyền truy cập thông báo của <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>, quyền truy cập chế độ Không làm phiền cũng có thể bị tắt."</string>
<string name="notification_listener_disable_warning_confirm" msgid="841492108402184976">"Tắt"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Tất cả"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Cho phép ứng dụng ghi đè"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Những ứng dụng có thể làm gián đoạn chế độ Không làm phiền"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Chọn ứng dụng khác"</string>
@@ -4086,7 +4085,7 @@
<string name="draw_overlay" msgid="7902083260500573027">"Hiện trên các ứng dụng khác"</string>
<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="allow_overlay_description" msgid="1607235723669496298">"Cho phép ứng dụng này hiện 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>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Hộp sạc"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Pin"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Bảng Cài đặt"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Buộc chạy chế độ máy tính"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Buộc chạy chế độ máy tính thử nghiệm trên màn hình phụ"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Bật cửa sổ có thể đổi kích thước"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Bật tính năng hỗ trợ cửa sổ có thể đổi kích thước."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Bật kết xuất c.sổ hiện tại có thể đổi k.thước trên màn hình phụ"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Chỉ bật cửa sổ có thể đổi kích thước trên màn hình phụ."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Bật tùy chọn không thay đổi kích thước trong nhiều cửa sổ"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Cho phép các ứng dụng không thể thay đổi kích thước xuất hiện trong nhiều cửa sổ"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Vô hiệu hoá tính năng buộc dùng chế độ tối"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Bạn phải chuyển đổi phân vùng dữ liệu của thiết bị này sang ext4 thì mới có thể dùng tuỳ chọn 16 KB cho nhà phát triển. Ở chế độ này, tính toàn vẹn của phần mềm không được đảm bảo, đồng thời mọi dữ liệu lưu trữ trên điện thoại này có thể gặp rủi ro trong khi trình tải khởi động được mở khoá. Nếu kích hoạt chế độ 16 KB, bạn sẽ phải khởi động lại một lần nữa sau lần này. Khi đã ở chế độ này, bạn chỉ cần khởi động lại một lần là có thể chuyển qua lại giữa chế độ 4 KB và 16 KB. Một số tính năng bị tắt ở các chế độ này nên có thể một vài ứng dụng sẽ không hoạt động. Để đặt lại thiết bị về chế độ cài đặt gốc, bạn cần quay lại chế độ 4 KB rồi khoá trình tải khởi động (thao tác này sẽ đặt lại thiết bị về trạng thái ban đầu). Sau khi thiết bị khởi động thành công vào Android, hãy tắt chế độ mở khoá OEM trong Tuỳ chọn cho nhà phát triển. Sau khi bạn xác nhận, dữ liệu trên thiết bị sẽ được xoá sạch và hệ thống tệp sẽ được thay đổi thành ext4. Sau khi quá trình này hoàn thành, vui lòng quay lại để bật lại chế độ 16 KB."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Xoá hết dữ liệu"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Không định dạng lại được phân vùng dữ liệu về ext4 và không xoá sạch được phân vùng dữ liệu."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Cần mở khoá trình tải khởi động"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Bạn cần phải mở khoá trình tải khởi động cho thiết bị này thì mới dùng được tuỳ chọn 16 KB cho nhà phát triển. Ở chế độ này, tính toàn vẹn của phần mềm không được đảm bảo, đồng thời mọi dữ liệu lưu trữ trên điện thoại này có thể gặp rủi ro trong khi trình tải khởi động được mở khoá. Tất cả dữ liệu người dùng và các chế độ cài đặt sẽ bị xoá sạch khi bạn kích hoạt chế độ 16 KB. Sau khi trình tải khởi động được mở khoá, bạn cần khởi động lại 2 lần thì mới kích hoạt được chế độ 16 KB. Khi đã ở chế độ này, bạn chỉ cần khởi động lại một lần là có thể chuyển qua lại giữa chế độ 4 KB và 16 KB. Một số tính năng bị tắt ở các chế độ này nên có thể một vài ứng dụng sẽ không hoạt động. Để đặt lại thiết bị về chế độ cài đặt gốc, bạn cần quay lại chế độ 4 KB, sau đó khoá OEM/trình tải khởi động (thao tác này sẽ đặt lại thiết bị về trạng thái ban đầu). Hãy mở khoá trình tải khởi động rồi thử lại. Bạn có thể xem hướng dẫn về cách thực hiện việc này tại <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Dùng chế độ 4 KB của chế độ không xác định kích thước trang"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Bạn đang ở chế độ 4 KB của chế độ không xác định kích thước trang. Ở chế độ này, tính toàn vẹn của phần mềm không được đảm bảo, đồng thời mọi dữ liệu lưu trữ trên điện thoại này có thể gặp rủi ro trong khi trình tải khởi động được mở khoá. Một số tính năng bị tắt ở các chế độ này nên có thể một vài ứng dụng sẽ không hoạt động. Để đặt lại thiết bị về chế độ cài đặt gốc, bạn phải khoá trình tải khởi động của thiết bị. Hãy nhấn để đọc thêm."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Bạn đang ở chế độ 4 KB của chế độ không phụ thuộc kích thước trang. Ở chế độ này, tính toàn vẹn của phần mềm không được đảm bảo, đồng thời mọi dữ liệu lưu trữ trên điện thoại này có thể gặp rủi ro trong khi trình tải khởi động được mở khoá. Một số tính năng bị tắt ở các chế độ này nên có thể một vài ứng dụng sẽ không hoạt động. Để đặt lại thiết bị về chế độ cài đặt gốc, bạn phải khoá trình tải khởi động của thiết bị. Thao tác này sẽ đặt lại thiết bị về trạng thái ban đầu và khôi phục các chế độ cài đặt gốc. Sau khi thiết bị khởi động thành công vào Android, hãy tắt chế độ mở khoá OEM trong Tuỳ chọn cho nhà phát triển. Nếu thiết bị không khởi động vào Android hoặc không ổn định, hãy cài đặt ROM lại cho thiết bị với hình ảnh gốc mới nhất từ <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> hoặc sử dụng <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> rồi chọn \"Wipe Device\" (Xoá thiết bị), \"Lock Bootloader\" (Khoá trình tải khởi động) và \"Force Flash all partitions\" (Buộc cài đặt ROM cho mọi phân vùng)."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Dùng chế độ 16 KB của chế độ không phụ thuộc kích thước trang"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Bạn đang ở chế độ 16KB của chế độ không phụ thuộc vào kích thước trang. Ở chế độ này, tính toàn vẹn của phần mềm không được đảm bảo, đồng thời mọi dữ liệu lưu trữ trên điện thoại này có thể gặp rủi ro trong khi trình tải khởi động được mở khoá. Một số tính năng bị tắt ở những chế độ này nên có thể một vài ứng dụng sẽ không hoạt động được. Để đặt lại thiết bị về chế độ cài đặt gốc, bạn phải chuyển lại về chế độ 4K rồi khoá trình tải khởi động của thiết bị. Hãy nhấn để đọc thêm."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Bạn đang ở chế độ 16KB của chế độ không phụ thuộc vào kích thước trang. Ở chế độ này, tính toàn vẹn của phần mềm không được đảm bảo, đồng thời mọi dữ liệu lưu trữ trên điện thoại này có thể gặp rủi ro trong khi trình tải khởi động được mở khoá. Một số tính năng bị tắt ở những chế độ này nên có thể một vài ứng dụng sẽ không hoạt động được. Để đặt lại thiết bị về chế độ cài đặt gốc, bạn phải chuyển lại về chế độ 4K rồi khoá trình tải khởi động của thiết bị. Thao tác này sẽ đặt lại thiết bị về trạng thái ban đầu và khôi phục các chế độ cài đặt gốc. Sau khi thiết bị khởi động thành công vào Android, hãy tắt chế độ mở khoá OEM trong Tuỳ chọn cho nhà phát triển. Nếu thiết bị không khởi động vào Android hoặc không ổn định, hãy cài đặt ROM lại cho thiết bị với hình ảnh gốc mới nhất từ <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> hoặc sử dụng <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> rồi chọn \"Xoá dữ liệu thiết bị\", \"Khoá trình tải khởi động\" và \"Buộc cài đặt ROM cho mọi phân vùng\"."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Chế độ 16 KB của chế độ không xác định kích thước trang"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Đọc thêm"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Trình xử lý báo cáo lỗi"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Chọn nội dung bạn sẽ thấy trên màn hình khi máy tính bảng được cắm vào đế sạc. Thiết bị có thể tiêu hao nhiều năng lượng hơn khi bạn dùng trình bảo vệ màn hình."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Tuỳ chỉnh"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Tuỳ chỉnh <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Cần phải khởi động lại để bật tuỳ chọn hỗ trợ dạng tự do."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Cần phải khởi động lại để buộc chạy chế độ máy tính trên màn hình phụ."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Bạn cần phải khởi động lại để bật tính năng hỗ trợ kết xuất cửa sổ hiện tại có thể đổi kích thước (cũ)."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Bạn cần phải khởi động lại để thay đổi tính năng hỗ trợ kết xuất cửa sổ có thể đổi kích thước."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Bạn cần phải khởi động lại để buộc bật chế độ kết xuất cửa sổ có thể đổi kích thước trên màn hình phụ."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Khởi động lại ngay"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Khởi động lại sau"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Âm thanh không gian"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 6c7dafe..02ed183 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已添加面孔和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已添加面孔、指纹和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已添加面孔、指纹和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"由于开启了身份验证,因此需要提供此信息"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"安装应用"</b>\n"将您不想公开的应用安装在私密空间中"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"注意事项"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"锁定您的私密空间后,应用将停止运行"</b>\n"在您锁定自己的私密空间后,其中的应用将停止运行,您也不会再收到来自这些应用的通知"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"私密空间不适合需要在后台运行或发送重要通知的应用,如医疗应用。这是因为,当私密空间处于锁定状态时,通知和后台活动将停止运行。\n\n私密空间处于锁定状态时,私密空间中的应用不会显示在权限管理器、隐私信息中心和其他设置中。\n\n私密空间无法转移到新设备。若要在其他设备上使用私密空间,您需要在该设备上再设置一个私密空间。\n\n如果有人将您的设备连接到计算机,或在您的设备上安装了有害应用,他们或许能够访问您的私密空间。"</string>
- <string name="private_space_settings_footer_text" msgid="3742468470394835356">"私密空间不适合需要在后台运行或发送重要通知的应用,如医疗应用。这是因为,当私密空间处于锁定状态时,通知和后台活动将停止运行。\n\n私密空间处于锁定状态时,私密空间中的应用不会显示在权限管理器、隐私信息中心和其他设置中。\n\n私密空间无法恢复到新设备。若要在其他设备上使用私密空间,您需要在该设备上再设置一个私密空间。\n\n如果有人将您的设备连接到计算机,或在您的设备上安装了恶意应用,他们或许能够访问您的私密空间。"</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"私密空间不适合需要在后台运行或发送重要通知的应用,如医疗应用。这是因为,当私密空间处于锁定状态时,通知和后台活动将停止运行。\n\n私密空间处于锁定状态时,私密空间中的应用不会显示在权限管理器、隐私信息中心和其他设置中。\n\n私密空间无法转移到新设备。若要在其他设备上使用私密空间,您需要在该设备上再设置一个私密空间。\n\n如果有人将您的设备连接到电脑,或在您的设备上安装了有害应用,他们或许能够访问您的私密空间。"</string>
+ <string name="private_space_settings_footer_text" msgid="3742468470394835356">"私密空间不适合需要在后台运行或发送重要通知的应用,如医疗应用。这是因为,当私密空间处于锁定状态时,通知和后台活动将停止运行。\n\n私密空间处于锁定状态时,私密空间中的应用不会显示在权限管理器、隐私信息中心和其他设置中。\n\n私密空间无法恢复到新设备。若要在其他设备上使用私密空间,您需要在该设备上再设置一个私密空间。\n\n如果有人将您的设备连接到电脑,或在您的设备上安装了恶意应用,他们或许能够访问您的私密空间。"</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"详细了解私密空间"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"这将需要一点时间"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"正在设置私密空间…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"选项"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"无障碍功能"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"实体键盘"</string>
- <string name="show_ime" msgid="4334255501724746849">"使用屏幕键盘"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"连接到实体键盘时,在屏幕上显示一个虚拟键盘"</string>
<string name="bounce_keys" msgid="7419450970351743904">"防抖键"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"键盘会忽略 <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒内快速重复按下同一按键的操作"</string>
<string name="slow_keys" msgid="2891452895499690837">"慢速键"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"仍然继续"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"取消"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"放大设置"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"用 1 根手指拖动即可移动放大区域"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"用 1 根手指拖动即可在画面上四处移动"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"拖动一根手指即可移动放大区域。"</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"拖动两根手指即可移动放大区域。"</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"如果仅放大局部屏幕,则无法使用此功能"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"点按按钮即可放大"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"快速放大屏幕,更清晰地查看内容"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>如需放大屏幕,请执行以下操作:</b><br/> {0,number,integer}. 使用快捷方式启动放大功能<br/> {1,number,integer}. 点按屏幕<br/> {2,number,integer}. 拖动双指在屏幕上四处移动<br/> {3,number,integer}. 张合双指以调整缩放比例<br/> {4,number,integer}. 使用快捷方式停止放大功能<br/><br/> <b>如需暂时放大屏幕,请执行以下操作:</b><br/> {0,number,integer}. 确保已将放大类型设为“全屏”<br/> {1,number,integer}. 使用快捷方式启动放大功能<br/> {2,number,integer}. 轻触并按住屏幕上的任意位置<br/> {3,number,integer}. 拖动单指在屏幕上四处移动<br/> {4,number,integer}. 抬起手指以停止放大功能"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>如需放大画面,请按以下步骤操作:</b><br/>{0,number,integer}. 使用快捷手势开始放大<br/> {1,number,integer}. 点按画面<br/> {2,number,integer}. 拖动 2 指在画面上四处移动<br/> {3,number,integer}. 张合 2 指以调整缩放比例<br/> {4,number,integer}. 使用快捷手势停止放大<br/><br/> 您还可以暂时放大画面及执行其他操作。"</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>如需放大画面,请按以下步骤操作:</b><br/>{0,number,integer}. 使用快捷手势开始放大<br/> {1,number,integer}. 点按画面<br/> {2,number,integer}. 拖动 1 或 2 根手指在画面上四处移动<br/> {3,number,integer}. 张合 2 指以调整缩放比例<br/> {4,number,integer}. 使用快捷手势停止放大<br/><br/> 您还可以暂时放大画面及执行其他操作。"</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"开启放大功能后,您就可以放大屏幕上的内容。\n\n"<b>"要放大内容"</b>",请先启动放大功能,然后点按屏幕上的任意位置。\n"<ul><li>"拖动双指或多指即可进行滚动"</li>\n<li>"张合双指或多指即可调整缩放级别"</li></ul>\n\n<b>"要暂时性放大内容"</b>",请先启动放大功能,然后轻触并按住屏幕上的任意位置。\n"<ul><li>"拖动手指即可在屏幕上四处移动"</li>\n<li>"松开手指即可缩小回原来的状态"</li></ul>\n\n"您无法针对键盘或导航栏使用放大功能。"</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"第 <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> 页,共 <xliff:g id="NUM_PAGES">%2$d</xliff:g> 页"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"“无障碍”按钮快捷方式"</string>
@@ -2226,7 +2221,7 @@
<string name="accessibility_shortcut_description" msgid="2184693606202133549">"允许在屏幕锁定时开启功能快捷方式。同时按住两个音量键几秒钟即可开启。"</string>
<string name="accessibility_button_title" msgid="5251235485581552614">"“无障碍”按钮"</string>
<string name="accessibility_button_gesture_title" msgid="3573456209050374139">"“无障碍”按钮和手势"</string>
- <string name="accessibility_button_intro_text" msgid="80993874471745687">"在任意屏幕画面上都能快速使用无障碍功能"</string>
+ <string name="accessibility_button_intro_text" msgid="80993874471745687">"在任意界面上都能快速使用无障碍功能"</string>
<string name="accessibility_button_about_title" msgid="3581116105084067926">"关于“无障碍”按钮"</string>
<string name="accessibility_button_gesture_about_title" msgid="8468987303602865536">"关于“无障碍”按钮和无障碍功能启动手势"</string>
<string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"详细了解“无障碍”按钮和无障碍功能启动手势"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"创建模式"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"自定义"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"限制打扰"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"开启勿扰模式"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"闹钟和媒体音效例外"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"设置时间表"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"时间表"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> 小时 <xliff:g id="MINUTES">%2$d</xliff:g> 分钟"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"自动开启"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"时间表"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"在特定的时间将手机设为静音"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"设置“勿扰”规则"</string>
@@ -3545,6 +3541,8 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"打开通知"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"允许显示通知延后选项"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"应用图标上的通知圆点"</string>
+ <!-- no translation found for notification_bundles (3614044525822580826) -->
+ <skip />
<string name="notification_bubbles_title" msgid="5681506665322329301">"消息气泡"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"消息气泡"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"以消息气泡形式显示此对话"</string>
@@ -3838,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"全部"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"允许应用覆盖"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"例外的应用"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"选择更多应用"</string>
@@ -4862,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"充电盒"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"电池"</string>
<string name="settings_panel_title" msgid="346363079938069215">"设置面板"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"强制使用桌面模式"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"在辅助显示屏上强制使用桌面模式这一实验性功能"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"启用可自由调整的窗口"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"实现对可自由调整的窗口的支持。"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"在第二显示器上启用可自由调整的窗口"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"仅在第二显示器上启用可自由调整的窗口。"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"允许以多窗口模式显示不可调整大小的应用"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"允许通过多窗口模式显示不可调整大小的应用"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"覆盖“强制启用 SmartDark 功能”的设置"</string>
@@ -4931,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"需要先将此设备的数据分区转换成 ext4,然后才能使用 16KB 开发者选项。在该模式下,无法保证软件完整性;而且在引导加载程序处于解锁状态时,存储在手机上的所有数据都可能会面临风险。在此之后,需要再重启设备一次,才能启用 16KB 选项。进入该模式后,您只需重启设备 1 次便可在 4KB 模式和 16KB 模式之间来回切换。在这些模式下,某些功能会被停用,所以某些应用可能无法正常运作。如果想让设备返回到生产模式,您需要切换回 4KB 模式并锁定引导加载程序,这样就会将设备恢复出厂设置。待设备成功启动到 Android 系统后,在开发者选项中停用 OEM 解锁。当您确认后,设备上的所有数据都会被擦除,而且文件系统会被更改为 ext4。完成以上步骤后,请再次返回启用 16KB 模式。"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"清除所有数据"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"未能擦除数据分区并重新格式化为 ext4。"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"必须解锁引导加载程序"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"需要先为此设备解锁引导加载程序,然后才能使用 16KB 开发者选项。在该模式下,无法保证软件完整性;而且在引导加载程序处于解锁状态时,存储在手机上的所有数据都可能会面临风险。启用 16KB 模式后,所有用户数据及设置都会被擦除。待引导加载程序解锁后,需要进行 2 次重新启动才能启用 16KB 选项。进入该模式后,您只需重启设备 1 次便可在 4KB 模式和 16KB 模式之间来回切换。在这些模式下,某些功能会被停用,所以某些应用可能无法正常运作。如果想让设备返回到生产模式,您将需要切换回 4KB 模式并锁定 OEM/引导加载程序,这样就会将设备恢复出厂设置。请解锁引导加载程序,然后重试。如要查看详细操作说明,请访问:<a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"正在使用 4KB 页面通用模式"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"您正处于 4KB 页面通用模式。在该模式下,无法保证软件完整性;而且在引导加载程序处于解锁状态时,存储在手机上的所有数据都可能会面临风险。在这些模式下,某些功能会被停用,所以某些应用可能无法正常运作。如果想重新进入生产模式,您必须锁定设备的引导加载程序。点按即可了解详情。"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"您正处于 4KB 页面通用模式。在该模式下,无法保证软件完整性;而且在引导加载程序处于解锁状态时,存储在手机上的所有数据都可能会面临风险。在这些模式下,某些功能会被停用,所以某些应用可能无法正常运作。如果想重新进入生产模式,您必须锁定设备的引导加载程序。这样会再次将设备恢复出厂设置,使其还原为生产设置。待设备成功启动到 Android 系统后,在开发者选项中停用 OEM 解锁。如果设备未能启动到 Android 系统或不稳定,请使用最新出厂映像 (<a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>) 重新刷写设备,或者前往 <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> 选择“擦除设备数据”>“锁定引导加载程序”>“强制刷写所有分区”。"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"目前使用 16KB 页面通用模式"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"您正处于 16KB 页面通用模式。在该模式下,无法保证软件完整性;而且在引导加载程序处于解锁状态时,存储在手机上的所有数据都可能会面临风险。在这些模式下,某些功能会被停用,所以某些应用可能无法正常运作。如果想重新进入生产模式,您必须切换回 4KB 模式并锁定设备的引导加载程序。点按即可了解详情。"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"您正处于 16KB 页面通用模式。在该模式下,无法保证软件完整性;而且在引导加载程序处于解锁状态时,存储在手机上的所有数据都可能会面临风险。在这些模式下,某些功能会被停用,所以某些应用可能无法正常运作。如果想重新进入生产模式,您必须切换回 4KB 模式并锁定设备的引导加载程序。这样会再次将设备恢复出厂设置,使其还原为生产设置。待设备成功启动到 Android 系统后,在开发者选项中停用 OEM 解锁。如果设备未能启动到 Android 系统或不稳定,请使用最新出厂映像 (<a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>) 重新刷写设备,或者前往 <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> 选择“擦除设备数据”>“锁定引导加载程序”>“强制刷写所有分区”。"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB 页面通用模式"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"了解详情"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Bug 报告处理程序"</string>
@@ -5188,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"选择平板电脑插入基座时屏幕上显示的内容。使用屏保时,设备可能会比较耗电。"</string>
<string name="customize_button_title" msgid="1110284655990203359">"自定义"</string>
<string name="customize_button_description" msgid="7440248477266126231">"自定义“<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>”"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"您必须重新启动设备,才能启用任意形式的支持。"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"您必须重新启动设备,才能在辅助屏幕上强制使用桌面模式。"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"必须重新启动,才能实现对旧版可自由调整的窗口的支持。"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"必须重新启动,才能更改可自由调整的窗口的支持功能。"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"必须重新启动,才能在第二显示器上强制启用可自由调整的窗口。"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"立即重新启动"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"稍后重新启动"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"空间音频"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index b17bc24..eb21e82 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已新增面孔和<xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已新增面孔、指紋和<xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已新增面孔、指紋和<xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"「身分檢查」功能已開啟,因此需要執行此步驟"</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>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"選項"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"無障礙功能"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"實體鍵盤"</string>
- <string name="show_ime" msgid="4334255501724746849">"使用屏幕鍵盤"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"當實體鍵盤處於連接狀態時,保持在畫面上顯示"</string>
<string name="bounce_keys" msgid="7419450970351743904">"篩選鍵"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"鍵盤會忽略在 <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒內快速重覆按下同一按鍵的動作"</string>
<string name="slow_keys" msgid="2891452895499690837">"緩慢鍵"</string>
@@ -3376,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"建立模式"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"自訂"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"減少干擾"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"開啟「請勿騷擾」模式"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"鬧鐘和媒體音效可打擾"</string>
@@ -3396,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"設定時間表"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"時間表"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> 小時 <xliff:g id="MINUTES">%2$d</xliff:g> 分鐘"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"自動開啟"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"預定時間"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"在特定時間將手機設為靜音"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"設定「請勿騷擾」規則"</string>
@@ -3541,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"開啟通知"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"允許通知延後"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"應用程式圖示上的通知圓點"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"通知組合"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"對話氣泡"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"對話氣泡"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"以對話氣泡顯示此對話"</string>
@@ -3834,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"全部"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"允許應用程式取代「請勿騷擾」"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"例外可打擾的應用程式"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"選擇更多應用程式"</string>
@@ -4858,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"耳機盒"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"電池"</string>
<string name="settings_panel_title" msgid="346363079938069215">"設定面板"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"強制執行桌面模式"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"在次要顯示屏強制執行實驗版桌面模式"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"啟用自由形態視窗"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"啟用自由形態視窗的支援功能。"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"在次要螢幕上啟用自由形態視窗"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"只在次要螢幕上啟用自由形態視窗"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"允許多重視窗模式顯示無法調整大小的應用程式"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"允許透過多重視窗模式顯示無法調整大小的應用程式"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"蓋過強制深色模式"</string>
@@ -4927,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"你需要先將此裝置的資料分區轉換為 ext4,才能使用 16 KB 開發人員選項。在此模式中無法保證軟件完整性,在啟動程式解鎖時,儲存在手機上的任何資料都可能面臨風險。在此之後需要再重新啟動一次,才能啟用 16 KB 選項。當你處於此模式時,可以在 4 KB 和 16 KB 模式之間來回切換,每次切換都要重新啟動一次。在這類模式中,部分功能會停用,因此部分應用程式無法運作。如要將裝置返回實際工作環境模式,你需要切換回 4 KB 模式並鎖定啟動程式,然後裝置就會回復原廠設定。裝置成功啟動 Android 後,請在開發人員選項中停用 OEM 解鎖設定。裝置資料將會抹除,檔案系統會在確認後變更為 ext4。完成此步驟之後,請再次返回啟用 16 KB。"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"清除所有資料"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"無法重新格式化並將資料分區抹除,變更為 ext4 檔案系統。"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"需要解鎖啟動程式"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"你需要先將此裝置的啟動程式解鎖,才能使用 16 KB 開發人員選項。在此模式中無法保證軟件完整性,在啟動程式解鎖時,儲存在手機上的任何資料都可能面臨風險。啟用 16 KB 模式時,所有使用者資料和設定都將抹除。啟動程式解鎖後需要經過兩次重新啟動,才能啟用 16 KB 選項。當你處於此模式時,可以在 4 KB 和 16 KB 模式之間來回切換,每次切換都要重新啟動一次。在這類模式中,部分功能會停用,因此部分應用程式無法運作。如要將裝置返回實際工作環境模式,你需要切換回 4 KB 模式,然後原始設備製造商 (OEM)/啟動程式就會鎖定裝置 (此操作會將裝置回復原廠設定)。請解鎖啟動程式,然後再試一次。如需有關的操作指示,請瀏覽 <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"使用 4 KB 頁面通用模式"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"你目前處於頁面通用模式的 4 KB 模式。在此模式中無法保證軟件完整性,在啟動程式解鎖時,儲存在手機上的任何資料都可能面臨風險。在這類模式中,部分功能會停用,因此部分應用程式無法運作。如要再次進入實際工作環境模式,你必須鎖定裝置的啟動程式。輕按即可閱讀更多。"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"你目前處於頁面通用模式的 4 KB 模式。在此模式中無法保證軟件完整性,在啟動程式解鎖時,儲存在手機上的任何資料都可能面臨風險。在這類模式中,部分功能會停用,因此部分應用程式無法運作。如要再次進入實際工作環境模式,你必須鎖定裝置的啟動程式。此操作會再次將裝置回復原廠設定,並將裝置還原為實際工作環境設定。裝置成功啟動 Android 後,請在開發人員選項中停用 OEM 解鎖設定。如裝置無法啟動 Android 或不穩定,請透過以下其中一種方式更新裝置:使用 <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> 中的最新原廠映像,或使用 <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> 工具,只要選取 [抹除裝置資料]、[鎖定啟動程式] 及 [強制更新所有分區] 即可。"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"使用 16 KB 頁面通用模式"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"你目前處於頁面通用模式的 16 KB 模式。在此模式中無法保證軟件完整性,在啟動程式解鎖時,儲存在手機上的任何資料都可能面臨風險。在這類模式中,部分功能會停用,因此部分應用程式無法運作。如要再次進入實際工作環境模式,你必須切換回 4 KB 模式,然後鎖定裝置的啟動程式。輕按即可閱讀更多。"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"你目前處於頁面通用模式的 16 KB 模式。在此模式中無法保證軟件完整性,在啟動程式解鎖時,儲存在手機上的任何資料都可能面臨風險。在這類模式中,部分功能會停用,因此部分應用程式無法運作。如要再次進入實際工作環境模式,你必須切換回 4 KB 模式,然後鎖定裝置的啟動程式。此操作會再次將裝置回復原廠設定,並將裝置還原為實際工作環境設定。裝置成功啟動 Android 後,請在開發人員選項中停用 OEM 解鎖設定。如裝置無法啟動 Android 或不穩定,請透過以下其中一種方式更新裝置:使用 <a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a> 中的最新原廠映像,或使用 <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> 工具,只要選取 [抹除裝置資料]、[鎖定啟動程式] 及 [強制更新所有分區] 即可。"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16 KB 頁面通用模式"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"閱讀更多"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"錯誤報告處理常式"</string>
@@ -5184,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"選擇平板電腦放上插座時螢幕上顯示的內容。如果裝置使用螢幕保護程式,可能會比較耗電。"</string>
<string name="customize_button_title" msgid="1110284655990203359">"自訂"</string>
<string name="customize_button_description" msgid="7440248477266126231">"自訂<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"你需要重新開機,才能啟用任意形式的支援。"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"你需要重新開機,才能在次要螢幕上強制執行桌面模式。"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"必須重新開機,才能啟用舊的自由形態視窗支援功能"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"必須重新開機,才能變更自由形態視窗的支援功能。"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"必須重新開機,才能在次要螢幕上強制執行自由形態視窗。"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"立即重新開機"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"稍後重新開機"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"空間音訊"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index ca7c82f..a2fa876 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -411,6 +411,7 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已新增臉孔和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已新增臉孔、指紋和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已新增臉孔、指紋和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
+ <string name="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"身分檢查已開啟,因此必須進行生物特徵辨識驗證"</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>
@@ -615,8 +616,8 @@
<string name="private_space_install_apps_text" msgid="8072027796190028830"><b>"安裝應用程式"</b>\n"在空間中安裝想保密的應用程式"</string>
<string name="private_space_keep_in_mind_text" msgid="7721081172657563800">"注意事項"</string>
<string name="private_space_apps_stopped_text" msgid="4034574118911250169"><b>"應用程式會在空間鎖定後停止運作"</b>\n"空間鎖定之後,當中的應用程式將停止運作,你不會收到這些應用程式的通知"</string>
- <string name="private_space_apps_permission_text" msgid="4416201648436201393">"私人空間不適用於需要在背景執行或傳送重要通知的應用程式,例如醫療應用程式。因為當空間鎖定時,通知和背景活動也會隨之停止。\n\n私人空間鎖定時,其中的應用程式不會顯示在權限管理工具、隱私資訊主頁和其他設定中。\n\n私人空間無法移到新裝置。如要在其他裝置上使用私人空間,請重新設定。\n\n如果有人將裝置接上電腦,或在裝置上安裝有害的應用程式,或許能夠存取你的私人空間。"</string>
- <string name="private_space_settings_footer_text" msgid="3742468470394835356">"私人空間不適用於需要在背景執行或傳送重要通知的應用程式,例如醫療應用程式。因為當空間鎖定時,通知和背景活動也會隨之停止。\n\n私人空間鎖定時,其中的應用程式不會顯示在權限管理工具、隱私資訊主頁和其他設定中。\n\n私人空間無法在新裝置上還原。如要在其他裝置上使用私人空間,請重新設定。\n\n如果有人將裝置接上電腦,或在裝置上安裝惡意應用程式,或許能夠存取你的私人空間。"</string>
+ <string name="private_space_apps_permission_text" msgid="4416201648436201393">"私人空間不適合用於需要在背景執行或傳送重要通知的應用程式,例如醫療應用程式。因為當空間鎖定時,通知和背景活動也會隨之停止。\n\n私人空間鎖定時,其中的應用程式不會顯示在權限管理工具、隱私資訊主頁和其他設定中。\n\n私人空間無法移到新裝置。如要在其他裝置上使用私人空間,請重新設定。\n\n如果有人將裝置接上電腦,或在裝置上安裝有害的應用程式,或許能夠存取你的私人空間。"</string>
+ <string name="private_space_settings_footer_text" msgid="3742468470394835356">"私人空間不適合用於需要在背景執行或傳送重要通知的應用程式,例如醫療應用程式。因為當空間鎖定時,通知和背景活動也會隨之停止。\n\n私人空間鎖定時,其中的應用程式不會顯示在權限管理工具、隱私資訊主頁和其他設定中。\n\n私人空間無法在新裝置上還原。如要在其他裝置上使用私人空間,請重新設定。\n\n如果有人將裝置接上電腦,或在裝置上安裝惡意應用程式,或許能夠存取你的私人空間。"</string>
<string name="private_space_learn_more_text" msgid="5314198983263277586">"進一步瞭解私人空間"</string>
<string name="private_space_few_moments_text" msgid="7166883272914424011">"請稍待片刻"</string>
<string name="private_space_setting_up_text" msgid="8458035555212009528">"正在設定私人空間…"</string>
@@ -1927,8 +1928,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"選項"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"無障礙"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"實體鍵盤"</string>
- <string name="show_ime" msgid="4334255501724746849">"使用螢幕小鍵盤"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"使用實體鍵盤時仍繼續顯示螢幕小鍵盤"</string>
<string name="bounce_keys" msgid="7419450970351743904">"彈回鍵"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"鍵盤會忽略在 <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒內快速重覆按下同一按鍵的動作"</string>
<string name="slow_keys" msgid="2891452895499690837">"延遲感應鍵"</string>
@@ -2130,10 +2129,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"仍要繼續"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"取消"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"放大功能設定"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"用 1 指移動放大鏡"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"用 1 指在畫面上拖曳放大區域"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"拖曳單指即可移動放大區域。"</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"拖曳雙指即可移動放大區域。"</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"只放大部分畫面時無法使用"</string>
@@ -2157,10 +2154,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"輕觸按鈕即可縮放"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"快速放大螢幕畫面中的內容"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>放大螢幕畫面的方法如下:</b><br/> {0,number,integer}. 使用捷徑啟動放大功能<br/> {1,number,integer}. 輕觸螢幕<br/> {2,number,integer}. 拖曳 2 指即可四處移動畫面<br/> {3,number,integer}. 使用 2 指撥動即可調整縮放等級<br/> {4,number,integer}. 使用捷徑關閉放大功能<br/><br/> <b>暫時放大螢幕畫面的方法如下:</b><br/> {0,number,integer}. 確認放大類型已設為全螢幕<br/> {1,number,integer}. 使用捷徑啟動放大功能<br/> {2,number,integer}. 按住螢幕上的任一處<br/> {3,number,integer}. 拖曳手指即可四處移動畫面<br/> {4,number,integer}. 移開手指即可關閉放大功能"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>放大畫面的方法如下:</b><br/>{0,number,integer}. 使用捷徑啟動放大功能<br/>{1,number,integer}. 輕觸螢幕<br/>{2,number,integer}. 用 2 指在畫面上拖曳放大區域<br/>{3,number,integer}. 用 2 指撥動調整縮放等級<br/>{4,number,integer}. 使用捷徑關閉放大功能<br/><br/>你也可以暫時放大畫面及執行其他操作。"</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>放大畫面的方法如下:</b><br/>{0,number,integer}. 使用捷徑啟動放大功能<br/>{1,number,integer}. 輕觸螢幕<br/>{2,number,integer}. 用 1 或 2 指在畫面上拖曳放大區域<br/> {3,number,integer}. 用 2 指撥動調整縮放等級<br/>{4,number,integer}. 使用捷徑關閉放大功能<br/><br/>你也可以暫時放大畫面及執行其他操作。"</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"放大功能啟用後,你可以放大畫面上的內容。\n\n"<b>"如要進行縮放"</b>",請開啟放大功能,然後輕觸畫面上的任何位置。\n"<ul><li>"使用兩指或多指以拖曳的方式捲動畫面"</li>\n<li>"使用兩指或多指撥動以調整縮放大小"</li></ul>\n\n<b>"如要暫時放大畫面"</b>",請開啟放大功能,然後按住畫面上的任何位置。\n"<ul><li>"使用手指拖曳可瀏覽畫面的不同部分"</li>\n<li>"放開手指即可縮小"</li></ul>\n\n"你無法放大鍵盤和導覽列部分。"</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"第 <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> 頁,共 <xliff:g id="NUM_PAGES">%2$d</xliff:g> 頁"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"無障礙工具按鈕捷徑"</string>
@@ -2232,7 +2227,7 @@
<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="1141723096904904336">"<b>詳細步驟</b><br/> {0,number,integer}. 開啟無障礙設定<br/> {1,number,integer}. 選取功能並輕觸捷徑<br/> {2,number,integer}. 選擇是否要透過按鈕或手勢執行該功能<br/>"</string>
+ <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"<b>詳細步驟</b><br/> {0,number,integer}. 開啟無障礙設定<br/> {1,number,integer}. 選取功能並輕觸捷徑<br/> {2,number,integer}. 選擇你要用按鈕或手勢來啟動該功能<br/>"</string>
<string name="accessibility_button_description" msgid="7669538706120092399">"<b>詳細步驟</b><br/> {0,number,integer}. 開啟無障礙設定<br/> {1,number,integer}. 選取功能並輕觸捷徑<br/> {2,number,integer}. 選擇要用來執行該功能的按鈕<br/>"</string>
<string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"使用按鈕或手勢"</string>
<string name="accessibility_button_location_title" msgid="7182107846092304942">"位置"</string>
@@ -3380,6 +3375,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"建立模式"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"自訂"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"降低干擾"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"開啟「零打擾」模式"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"鬧鐘和媒體音效例外"</string>
@@ -3400,8 +3397,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"設定時間表"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"安排時間"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> 小時 <xliff:g id="MINUTES">%2$d</xliff:g> 分鐘"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"自動開啟"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"排程"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"在特定時間將手機設為靜音"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"設定「零打擾」規則"</string>
@@ -3545,6 +3541,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"開啟通知"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"顯示延後通知"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"顯示應用程式圖示的通知圓點"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"通知組合"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"對話框"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"對話框"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"以對話框形式顯示這個對話"</string>
@@ -3838,6 +3835,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"全部"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"允許應用程式覆寫"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"例外的應用程式"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"選取更多應用程式"</string>
@@ -4083,10 +4082,10 @@
<string name="ignore_optimizations_off_desc" msgid="3324571675983286177">"建議使用以延長電池續航力"</string>
<string name="app_list_preference_none" msgid="1635406344616653756">"無"</string>
<string name="work_profile_usage_access_warning" msgid="3477719910927319122">"即使關閉此應用程式的使用記錄存取功能,你的管理員仍可存取工作資料夾中應用程式的數據用量"</string>
- <string name="draw_overlay" msgid="7902083260500573027">"顯示在其他應用程式上層"</string>
- <string name="system_alert_window_settings" msgid="6458633954424862521">"顯示在其他應用程式上層"</string>
- <string name="permit_draw_overlay" msgid="4468994037192804075">"允許顯示在其他應用程式上層"</string>
- <string name="allow_overlay_description" msgid="1607235723669496298">"允許這個應用程式顯示在畫面上層,遮住其他的應用程式。該應用程式將可知道你輕觸的位置或變更畫面上顯示的內容。"</string>
+ <string name="draw_overlay" msgid="7902083260500573027">"重疊顯示於其他應用程式上方"</string>
+ <string name="system_alert_window_settings" msgid="6458633954424862521">"重疊顯示於其他應用程式上方"</string>
+ <string name="permit_draw_overlay" msgid="4468994037192804075">"允許重疊顯示於其他應用程式上方"</string>
+ <string name="allow_overlay_description" msgid="1607235723669496298">"允許這個應用程式重疊顯示在其他正在使用的應用程式上方。這個應用程式將能偵測你輕觸的位置,或變更畫面上顯示的內容。"</string>
<string name="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>
@@ -4102,7 +4101,7 @@
<string name="media_management_apps_description" msgid="8000565658455268524">"如果允許,這個應用程式就能直接修改或刪除使用其他應用程式建立的媒體檔案,不用事先取得你的同意。應用程式必須先獲得權限才能存取檔案和媒體。"</string>
<string name="keywords_media_management_apps" msgid="7499959607583088690">"媒體, 檔案, 管理, 管理員, 編輯, 編輯器, 應用程式, 程式"</string>
<string name="keywords_vr_listener" msgid="902737490270081131">"vr 虛擬實境 接聽器 音響 小幫手 服務"</string>
- <string name="overlay_settings" msgid="2030836934139139469">"顯示在其他應用程式上層"</string>
+ <string name="overlay_settings" msgid="2030836934139139469">"重疊顯示於其他應用程式上方"</string>
<string name="filter_overlay_apps" msgid="2483998217116789206">"具備權限的應用程式"</string>
<string name="app_permission_summary_allowed" msgid="1155115629167757278">"允許"</string>
<string name="app_permission_summary_not_allowed" msgid="2673793662439097900">"不允許"</string>
@@ -4862,8 +4861,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"充電盒"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"電池"</string>
<string name="settings_panel_title" msgid="346363079938069215">"設定面板"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"強制使用桌面模式"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"在次要顯示器上強制使用桌面模式實驗性功能"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"啟用自由形式視窗"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"啟用自由形式視窗支援功能。"</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"在第二個螢幕上啟用自由形式視窗功能"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"只在第二個螢幕上啟用自由形式視窗功能。"</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"允許多視窗模式顯示無法調整大小的應用程式"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"允許透過多視窗模式顯示無法調整大小的應用程式"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"覆寫強制使用深色模式的功能"</string>
@@ -4931,17 +4932,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"必須先將這部裝置的資料分區轉換為 ext4,才能使用 16KB 開發人員選項。此模式無法保證軟體完整性,且系統啟動載入程式解鎖時,手機上的資料可能面臨風險。在此之後還必須再重新啟動一次,才能啟用 16KB 選項。當你處於此模式時,可以在 4KB 和 16KB 模式之間來回切換,每次切換都要重新啟動一次。在這類模式中,部分功能會停用,因此有些應用程式可能無法運作。如要返回實際工作環境模式,必須切換回 4KB 模式並鎖定系統啟動載入程式,裝置就會恢復原廠設定。裝置成功啟動 Android 系統後,請在開發人員選項中停用 OEM 解鎖設定。裝置資料將會抹除,檔案系統會在確認後變更為 ext4。完成此步驟之後,請再次返回啟用 16KB。"</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"清除所有資料"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"無法抹除資料分區並重新格式化為 ext4。"</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"必須解鎖系統啟動載入程式"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"必須先將這部裝置的系統啟動載入程式解鎖,才能使用 16KB 開發人員選項。此模式無法保證軟體完整性,且系統啟動載入程式解鎖時,手機上的資料可能面臨風險。啟用 16KB 模式時,所有使用者資料和設定都將抹除。系統啟動載入程式解鎖後,需要經過兩次重新啟動,才能啟用 16KB 選項。當你處於此模式時,可以在 4KB 和 16KB 模式之間來回切換,每次切換都要重新啟動一次。在這類模式中,部分功能會停用,因此有些應用程式可能無法運作。如要返回實際工作環境模式,必須切換回 4KB 模式,OEM/系統啟動載入程式就會鎖定裝置,裝置也將恢復原廠設定。請解鎖系統啟動載入程式,然後再試一次。操作方法如以下網址說明:<a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"目前使用 4KB 可變頁面模式"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"你目前處於可變頁面模式的 4KB 模式。此模式無法保證軟體完整性,且系統啟動載入程式解鎖時,手機上的資料可能面臨風險。在這類模式中,部分功能會停用,因此有些應用程式可能無法運作。如要再次進入實際工作環境模式,你必須鎖定裝置的系統啟動載入程式。輕觸即可閱讀更多內容。"</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"你目前處於可變頁面模式的 4KB 模式。此模式無法保證軟體完整性,且系統啟動載入程式解鎖時,手機上的資料可能面臨風險。在這類模式中,部分功能會停用,因此有些應用程式可能無法運作。如要再次進入實際工作環境模式,你必須鎖定裝置的系統啟動載入程式。這樣做會使裝置再次恢復原廠設定,並將裝置還原為實際工作環境設定。裝置成功啟動 Android 系統後,請在開發人員選項中停用 OEM 解鎖設定。如果裝置無法啟動 Android 或狀態不穩,可透過以下任一方式重新刷新裝置:使用最新原廠映像檔 (<a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>) 或 <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> 工具,依序選取「Wipe Device」、「Lock Bootloader」和「Force Flash all partitions」。"</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"目前使用 16KB 可變頁面模式"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"你目前處於可變頁面模式的 16KB 模式。此模式無法保證軟體完整性,且系統啟動載入程式解鎖時,手機上的資料可能會有風險。在這類模式中,部分功能會停用,因此有些應用程式可能無法運作。如要再次進入實際工作環境模式,必須切換回 4KB 模式,然後鎖定裝置的系統啟動載入程式。輕觸即可閱讀完整內容。"</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"你目前處於可變頁面模式的 16KB 模式。此模式無法保證軟體完整性,且系統啟動載入程式解鎖時,手機上的資料可能會有風險。在這類模式中,部分功能會停用,因此有些應用程式可能無法運作。如要再次進入實際工作環境模式,必須切換回 4KB 模式,然後鎖定裝置的系統啟動載入程式。這樣做會使裝置再次恢復原廠設定,並還原為實際工作環境設定。裝置成功啟動 Android 系統後,請停用「開發人員選項」中的「OEM 解鎖」設定。如果裝置無法啟動 Android 或狀態不穩,可透過以下任一方式重新刷新裝置:使用最新原廠映像檔 (<a href=\"https://developers.google.com/android/images\">https://developers.google.com/android/images</a>),或前往 <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> 使用工具,依序選取「Wipe Device」、「Lock Bootloader」和「Force Flash all partitions」。"</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"16KB 可變頁面模式"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"閱讀完整內容"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"錯誤報告處理常式"</string>
@@ -5188,8 +5186,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"選擇平板電腦插入座架時螢幕上要顯示的內容。請注意,如果裝置使用螢幕保護程式,可能會比較耗電。"</string>
<string name="customize_button_title" msgid="1110284655990203359">"自訂"</string>
<string name="customize_button_description" msgid="7440248477266126231">"自訂「<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>」"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"必須重新啟動才能啟用任意形式的支援。"</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"必須重新啟動才能在次要螢幕上強制執行桌面模式。"</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"必須重新啟動,才能啟用舊版自由形式視窗支援功能。"</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"必須重新啟動,才能變更自由形式視窗支援功能。"</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"必須重新啟動,才能強制在第二個螢幕上使用自由形式視窗功能。"</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"立即重新啟動"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"稍後重新啟動"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"空間音訊"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 36cc555..0845161 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -411,6 +411,7 @@
<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="mandatory_biometrics_prompt_description" msgid="5461737411954922392">"Lokhu kuyadingeka njengoba Ukuhlola Ubuwena kuvuliwe"</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>
@@ -1928,8 +1929,6 @@
<string name="keyboard_options_category" msgid="8040137073401152608">"Ongakukhetha"</string>
<string name="keyboard_a11y_category" msgid="8230758278046841469">"Ukufinyeleleka"</string>
<string name="physical_keyboard_title" msgid="3328134097512350958">"Ikhibhodi ephathekayo"</string>
- <string name="show_ime" msgid="4334255501724746849">"Sebenzisa ikhibhodi ekuskrini"</string>
- <string name="show_ime_summary" msgid="7293345791727205975">"Yigcine kusikrini ngenkathi kusebenza ikhibhodi ephathekayo"</string>
<string name="bounce_keys" msgid="7419450970351743904">"Okhiye bokubuyisela emuva"</string>
<string name="bounce_keys_summary" msgid="7347050868868080302">"Ikhibhodi iziba ukuchofozwa okusheshayo ngokuphindaphindiwe kwenkinobho efanayo phakathi nenkathi engu-<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
<string name="slow_keys" msgid="2891452895499690837">"Okhiye abahamba kancane"</string>
@@ -2131,10 +2130,8 @@
<string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Qhubeka noma kunjalo"</string>
<string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Khansela"</string>
<string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Izilungiselelo zokukhuliswa"</string>
- <!-- no translation found for accessibility_magnification_one_finger_panning_title (1338811559457209339) -->
- <skip />
- <!-- no translation found for accessibility_magnification_one_finger_panning_summary (1861473044337453019) -->
- <skip />
+ <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Hambisa imagnifier ngomunwe ongu-1"</string>
+ <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Hudula umunwe ongu-1 ukuze uhambe esikrinini"</string>
<string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Hambisa indawo yokukhuliswa ngokuhudula umunwe owodwa."</string>
<string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Hambisa indawo yokukhuliswa ngokuhudula iminwe emibili."</string>
<string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ayitholakali ngenkathi ikhulisa kuphela ingxenye yesikrini"</string>
@@ -2158,10 +2155,8 @@
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Thepha inkinobho ukuze usondeze"</string>
<string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Sondeza isithombe ngokushesha ukuze wenze okuqukethwe kube kukhudlwana"</string>
<string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"<b>Ukuze usondeze isithombe:<br/><br/> {0,number,integer}. Sebenzisa isinqamuleli ukuqalisa ukukhuliswa</b><br/> {1,number,integer}. Thepha isikrini</b><br/> {2,number,integer}. Hudula iminwe emi-2 ukuze uhambe esikrinini</b><br/> {3,number,integer}. Ncinza ngeminwe emi-2 ukuze ulungise ukusondeza</b><br/> {4,number,integer}. Sebenzisa isinqamuleli ukuze umise ukukhuliswa<br/><br/> <b>Ukuze usondeze isithombe okwesikhashana:</b><br/> {0,number,integer}. Qiniseka ukuthi uhlobo lwakho lokukhulisa lusethwe esikrinini esigcwele</b><br/> {1,number,integer}. Sebenzisa isinqamuleli ukuqalisa ukukhuliswa</b><br/> {2,number,integer}. Thinta futhi ubambe noma kuphi esikrinini</b><br/> {3,number,integer}. Hudula umunwe ukuze uhambahambe esikrinini</b><br/> {4,number,integer}. Phakamisa umunwe ukuze umise ukukhuliswa"</string>
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_off (1779959623535122324) -->
- <skip />
- <!-- no translation found for accessibility_screen_magnification_summary_one_finger_panning_on (7323930759240678965) -->
- <skip />
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>Ukuze usondeze isithombe:<br/><br/> {0,number,integer}. Sebenzisa isinqamuleli ukuqalisa ukukhuliswa</b><br/> {1,number,integer}. Thepha isikrini</b><br/> {2,number,integer}. Hudula iminwe engu-2 ukuze uhambahambe esikrinini</b><br/> {3,number,integer}. Ncinza ngeminwe engu-2 ukuze ulungise ukusondeza</b><br/> {4,number,integer}. Sebenzisa isinqamuleli ukuze umise ukukhuliswa<br/><br/> Ungaphinda usondeze isithombe okwesikhashana nokuningi."</string>
+ <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>Ukuze usondeze isithombe:<br/><br/> {0,number,integer}. Sebenzisa isinqamuleli ukuqalisa ukukhuliswa</b><br/> {1,number,integer}. Thepha isikrini</b><br/> {2,number,integer}. Hudula iminwe engu-1 noma 2 ukuze uhambahambe esikrinini<br/> {3,number,integer}. Ncinza ngeminwe engu-2 ukuze ulungise ukusondeza</b><br/> {4,number,integer}. Sebenzisa isinqamuleli ukuze umise ukukhuliswa<br/><br/> Ungaphinda usondeze isithombe okwesikhashana nokuningi."</string>
<string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Uma ukukhulisa kuvuliwe, ungasondeza isikrini sakho.\n\n"<b>"Ukuze usondeze"</b>", qala ukukhulisa, thepha noma yikuphi kusikrini.\n"<ul><li>"Hudula iminwe engu-2 noma ngaphezulu ukuze uskrole"</li>\n<li>"Ncinza iminwe engu-2 noma ngaphezulu ukuze ulungisa ukusondela"</li></ul>\n\n<b>"Ukuze usondeze okwesikhashana"</b>", qalisaukukhulisa, bese uthinte futhi ubambe noma yokuhi esikrinini.\n"<ul><li>"Hudula ukuze uhambahambe esikrinini"</li>\n<li>"Phakamisa umunwe ukuze uhlehlise isithombe"</li></ul>\n\n"Awukwazi ukusondeza kwikhibhodi noma kwibha yokuzula."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Ikhasi elingu-<xliff:g id="CURRENT_PAGE">%1$d</xliff:g> kwangu-<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Isinqamuleli senkinobho yokufinyeleleka"</string>
@@ -3381,6 +3376,8 @@
<skip />
<!-- no translation found for zen_mode_disabled_by_user (138592173630683253) -->
<skip />
+ <string name="zen_mode_new_title" msgid="4934720193004330740">"Sungula imodi"</string>
+ <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Okumuntu ngamunye"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Khawulela ukuphazamisa"</string>
<string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Vula ukungaphazamisi"</string>
<string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Ama-alamu nemisindo yemidiya kungaphazamisa"</string>
@@ -3401,8 +3398,7 @@
<string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Setha ishejuli"</string>
<string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Shejula"</string>
<string name="zen_mode_schedule_duration" msgid="299332195675875111">"Ihora elingu-<xliff:g id="HOURS">%1$d</xliff:g>, nemizuzu engu-<xliff:g id="MINUTES">%2$d</xliff:g>"</string>
- <!-- no translation found for zen_mode_configuration_link_title (4718358055721023371) -->
- <skip />
+ <string name="zen_mode_configuration_link_title" msgid="4718358055721023371">"Vula ngokuzenzekelayo"</string>
<string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ishejuli"</string>
<string name="zen_mode_automation_suggestion_title" msgid="7776129050500707960">"Thulisa ifoni ngezinye izikhathi"</string>
<string name="zen_mode_automation_suggestion_summary" msgid="1946750790084170826">"Setha imithetho yokuthi ungaphazamisi"</string>
@@ -3546,6 +3542,7 @@
<string name="notification_history_open_notification" msgid="2655071846911258371">"vula isaziso"</string>
<string name="snooze_options_title" msgid="2109795569568344617">"Vumela ukusnuza kwesaziso"</string>
<string name="notification_badging_title" msgid="5469616894819568917">"Ichashazi lesaziso kusithonjana sohlelo lokusebenza"</string>
+ <string name="notification_bundles" msgid="3614044525822580826">"Iqoqo lezaziso"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Amabhamuza"</string>
<string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Amabhamuza"</string>
<string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Yenza ibhamuza le ngxoxo"</string>
@@ -3839,6 +3836,8 @@
<string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Konke"</string>
<!-- no translation found for zen_mode_apps_subtext (1764211974662012877) -->
<skip />
+ <!-- no translation found for zen_mode_apps_calculating (5420121396943539286) -->
+ <skip />
<string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Vumela izinhlelo zokusebenza ukubhala ngaphezulu"</string>
<string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Ama-app angaphazamisa"</string>
<string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Khetha ama-app amaningi"</string>
@@ -4863,8 +4862,10 @@
<string name="bluetooth_middle_name" msgid="3909371955137442319">"Isimo"</string>
<string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Ibhethri"</string>
<string name="settings_panel_title" msgid="346363079938069215">"Iphaneli yezilungiselelo"</string>
- <string name="force_desktop_mode" msgid="1336913605091334238">"Phoqelela imodi yedeskithophu"</string>
- <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Phoqelela imodi yedeskithophu yokuhlola esibukisweni sesibili"</string>
+ <string name="enable_desktop_mode" msgid="5644818402534562302">"Nika amandla amawindi efreeform"</string>
+ <string name="enable_desktop_mode_summary" msgid="7606643229185242771">"Nika amandla usekelo lwamawindi efreeform."</string>
+ <string name="force_desktop_mode" msgid="8292039809783522466">"Nika amandla iwindi lefreeform esibonisini sesibili"</string>
+ <string name="force_desktop_mode_summary" msgid="6534513232678335875">"Nika amandla amawindi kuphela esibonisini sesibili."</string>
<string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Nika amandla okungashintsheki usayizi emawindini amaningi"</string>
<string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Ivumela izinhlelo zokusebenza ezingashintsheki usayizi ukuthi zibe emawindini amaningi"</string>
<string name="hwui_force_dark_title" msgid="4256904905631994219">"Bhala ngaphezulu isici sokuphoqelela okumnyama"</string>
@@ -4932,17 +4933,14 @@
<string name="confirm_format_ext4_text" msgid="7940372488624630214">"Ukuhlukaniswa kwedatha yale divayisi kudinga ukuguqulelwa ku-ext4 ngaphambi kokusebenzisa okungakhethwa kukho konjiniyela kuka-16KB. Ubuqotho besofthiwe abukwazi ukuqinisekiswa kule modi, futhi noma iyiphi idatha egcinwe efonwini ngenkathi i-bootloader ivuliwe ingaba sengozini. Ukwenza kusebenze okukhethwa kukho kuka-16KB kuzodinga ukuqalisa okukodwa ngemva kwalokhu. Uma ukule modi, ungashintsha uye emuva naphambili phakathi kwemodi ka-4KB ne-16KB ngokuqalisa okukodwa. Ezinye izakhi zizokhutshazwa kulawa mamodi, ngakho-ke amanye ama-app angase angasebenzi. Ukuze ubuyisele idivayisi kumodi yokukhiqiza, uzodinga ukushintshela kumodi ye-4KB bese ukhiya i-bootloader, esetha idivayisi kabusha njengasekuqaleni. Ngemuva kokuthi idivayisi iqale ngempumelelo ku-Android, khubaza ukuvula kwe-OEM Kokungakhethwa kukho konjiniyela. Idivayisi izosulwa futhi isistimu yefayela izoshintshelwa ku-ext4 ngemva kokuqinisekisa. Ngemva kokuqeda lokhu, sicela ubuye ukuze unike amandla u-16KB futhi."</string>
<string name="confirm_ext4_button_text" msgid="6045501984773738407">"Sula yonke idatha"</string>
<string name="format_ext4_failure_toast" msgid="8059453995800471549">"Yehlulekile ukufometha kabusha nokusula ukuhlukaniswa kwedatha ku-ext4."</string>
- <!-- no translation found for confirm_oem_unlock_for_16k_title (6062041826568112078) -->
- <skip />
+ <string name="confirm_oem_unlock_for_16k_title" msgid="6062041826568112078">"Kudingeka Ukuvula IBootloader"</string>
<string name="confirm_oem_unlock_for_16k_text" msgid="3583604865119937957">"Le divayisi idinga ukuthi ibootloader ivulwe ngaphambi kokusebenzisa okungakhethwa kukho konjiniyela kuka-16KB. Ubuqotho besofthiwe abukwazi ukuqinisekiswa kule modi, futhi noma iyiphi idatha egcinwe efonwini ngenkathi ibootloader ivuliwe ingaba sengozini. Yonke idatha yomsebenzisi namasethingi azosulwa uma wenza kusebenze imodi ka-16KB. Uma ibootloader isivuliwe, ukuvula okukhethwa kukho kuka-16KB kuzodinga ukuqalisa okubili. Uma ukule modi, ungashintsha uye emuva naphambili phakathi kwemodi ka-4KB ne-16KB ngokuqalisa okukodwa. Ezinye izakhi zizokhutshazwa kulawa mamodi, ngakho-ke amanye ama-app angase angasebenzi. Ukuze ubuyisele idivayisi kumodi yokukhiqiza, uzodinga ukushintshela kumodi ka-4KB bese kuba ukukhiya i-OEM/ibootloader (esetha kabusha njengasekuqaleni) idivayisi. Sicela uvule ibootloader bese uyazama futhi. Ungabona imiyalelo yokuthi ungakwenza kanjani lokhu kokuthi <a href=\"https://source.android.com/docs/core/architecture/bootloader/locking_unlocking\">https://source.android.com/docs/core/architecture/bootloader/locking_unlocking</a>"</string>
<string name="page_agnostic_4k_pages_title" msgid="1184703958249093215">"Ukusebenzisa i-4KB page-agnostic"</string>
<string name="page_agnostic_4k_pages_text_short" msgid="2894243902906666242">"Ukumodi ka-16KB yemodi ye-page-agnostic. Ubuqotho besofthiwe abukwazi ukuqinisekiswa kule modi, futhi noma iyiphi idatha egcinwe efonwini ngenkathi i-bootloader ivuliwe ingaba sengozini. Ezinye izakhi zizokhutshazwa kulawa mamodi, ngakho-ke amanye ama-app angase angasebenzi. Ukuze uphinde ufake imodi yokukhiqiza, kufanele ukhiye i-bootloader yedivayisi. Thepha ukuze ufunde kabanzi."</string>
<string name="page_agnostic_4k_pages_text" msgid="8284806650260868833">"Ukumodi ka-16KB yemodi ye-page-agnostic. Ubuqotho besofthiwe abukwazi ukuqinisekiswa kule modi, futhi noma iyiphi idatha egcinwe efonwini ngenkathi i-bootloader ivuliwe ingaba sengozini. Ezinye izakhi zizokhutshazwa kulawa mamodi, ngakho-ke amanye ama-app angase angasebenzi. Ukuze uphinde ufake imodi yokukhiqiza, kufanele ukhiye i-bootloader yedivayisi. Lokhu kuzosetha kabusha njengasekuqaleni idivayisi futhi nokuyibuyisela kumasethingi okukhiqiza. Ngemuva kokuthi idivayisi iqale ngempumelelo ku-Android, khubaza ukuvula kwe-OEM Kokungakhethwa kukho konjiniyela. Uma idivayisi yehluleka ukuqalisa ku-Android noma ingazinzile, khanyisa kabusha idivayisi ngemifanekiso yefemu evela kokuthi <a href=\"https://developers.google.com/android/images\">https://developers .google.com/android/images</a> noma sebenzisa okuthi <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> bese ukhetha okuthi \'Sula Idivayisi\', \'Khiya I-Bootloader\' kanye nokuthi \'Phoqelela I-Flash ezingxenyeni zonke\'."</string>
<string name="page_agnostic_16k_pages_title" msgid="7762533464569818498">"Ukusebenzisa imodi ye-16KB page-agnostic"</string>
- <!-- no translation found for page_agnostic_16k_pages_text_short (3282018880292691631) -->
- <skip />
- <!-- no translation found for page_agnostic_16k_pages_text (2999817238546170627) -->
- <skip />
+ <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"Uphakathi kwemodi engu-16KB yemodi yokusebenza emakhasini onke. Ubuqotho besofthiwe abukwazi ukuqinisekiswa kule modi, futhi noma iyiphi idatha egcinwe efonwinini ngenkathi ibootloader ivuliwe ingaba sengozini. Ezinye izakhi zizokhutshazwa kula mamodi, ngakho amanye ama-app angase angasebenzi. Ukuze uphinde ufake imodi yokukhiqiza, kufanele, ushintshele emuva kumodi engu-4KB bese ukhiya ibootloader yedivayisi. Thepha ukuze ufunde kabanzi."</string>
+ <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"Uphakathi kwemodi engu-16KB yemodi yokusebenza emakhasini onke. Ubuqotho besofthiwe abukwazi ukuqinisekiswa kule modi, futhi noma iyiphi idatha egcinwe efonwinini ngenkathi ibootloader ivuliwe ingaba sengozini. Ezinye izakhi zizokhutshazwa kula mamodi, ngakho amanye ama-app angase angasebenzi. Ukuze uphinde ufake imodi yokukhiqiza, kufanele, ushintshele emuva kumodi engu-4KB bese ukhiya ibootloader yedivayisi. Lokhu kuzosetha kabusha njengasekuqaleni idivayisi kuyibuyisele kumasethingi okukhiqiza. Ngemva kokuthi idivayisi iqale ngempumelelo ku-Android, khubaza ukuvula kwe-OEM Kokungakhethwa kukho konjiniyela. Uma idivayisi yehluleka ukuqalisa ku-Android noma ingazinzile, khanyisa kabusha idivayisi ngemifanekiso yefemu evela kokuthi <a href=\"https://developers.google.com/android/images\">https://developers .google.com/android/images</a> noma usebenzise okuthi <a href=\"https://flash.android.com/back-to-public\">https://flash.android.com/back-to-public</a> bese ukhetha okuthi \'Sula Idivayisi\', \'Khiya IBootloader\' kanye nokuthi \'Phoqelela IFlash ezingxenyeni zonke\'."</string>
<string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"Imodi ye-Page-agnostic ka-16KB"</string>
<string name="page_agnostic_notification_action" msgid="2309805437430150456">"Funda kabanzi"</string>
<string name="bug_report_handler_title" msgid="713439959113250125">"Isibambi sombiko wesiphazamiso"</string>
@@ -5189,8 +5187,9 @@
<string name="dream_setup_description" msgid="7508547154038580296">"Khetha ozokubona esikrinini sakho uma ithebulethi yakho idokhiwe. Idivayisi yakho ingase isebenzise amandla engeziwe uma kusetshenziswa isilondolozi sesikrini."</string>
<string name="customize_button_title" msgid="1110284655990203359">"Enza ngendlela oyifisayo"</string>
<string name="customize_button_description" msgid="7440248477266126231">"Enza ngendlela oyifisayo <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
- <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Ukuqalisa kabusha kuyadingeka ukunika amandla usekelo lwefomu yamahhala."</string>
- <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Ukuqalisa kabusha kuyadingeka ukuphoqelela imodi yedeskithophu kuzibonisi zesibili."</string>
+ <string name="reboot_dialog_enable_freeform_support" msgid="5526979569538289810">"Kudingeka ukuqala kabusha ukuze unike amandla ifa lokweseka iwindi lefreeform."</string>
+ <string name="reboot_dialog_override_desktop_mode" msgid="1557714416232280288">"Kudingeka ukuqala kabusha ukuze ushintshe ukweseka iwindi lefreeform."</string>
+ <string name="reboot_dialog_force_desktop_mode" msgid="3647484086248450029">"Kudingeka ukuqala kabusha ukuze uphoqe iwindi lefreeform esibonisini sesibili."</string>
<string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Qalisa manje"</string>
<string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Qalisa ngokuhamba kwesikhathi"</string>
<string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Umsindo Wokulalelwayo"</string>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 6d92526..b0de870 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -218,4 +218,7 @@
<!-- Switch bar disabled state color-->
<color name="switch_bar_state_disabled_color">#1F1F1F1F</color>
+
+ <!-- Battery ring indicator color in bluetooth device details -->
+ <color name="bluetooth_battery_ring_indicator_color">#9ED582</color>
</resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 4b638b2..065d28a 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -235,9 +235,6 @@
Can be overridden for specific product builds if the target device does not support it -->
<bool name="config_media_vibration_supported">true</bool>
- <!-- Whether to show Keyboard vibration settings in the vibration and haptics screen. -->
- <bool name="config_keyboard_vibration_supported">false</bool>
-
<!--
Whether or not the homepage should be powered by legacy suggestion (versus contextual cards)
Default to true as not all devices support contextual cards.
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index ce48720..8a96727 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -179,6 +179,7 @@
<dimen name="pointer_fill_style_circle_padding">8dp</dimen>
<dimen name="pointer_fill_style_shape_default_stroke">1dp</dimen>
<dimen name="pointer_fill_style_shape_hovered_stroke">3dp</dimen>
+ <dimen name="pointer_stroke_style_padding">8dp</dimen>
<dimen name="pointer_scale_padding">8dp</dimen>
<item name="pointer_scale_size_start" format="float" type="dimen">1.0</item>
<item name="pointer_scale_size_end" format="float" type="dimen">2.5</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 81c8973..3063f77 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4501,6 +4501,14 @@
<string name="pointer_fill_style_pink_button">Change pointer fill style to pink</string>
<!-- Content description for blue pointer fill style. [CHAR LIMIT=60] -->
<string name="pointer_fill_style_blue_button">Change pointer fill style to blue</string>
+ <!-- Title text for mouse pointer stroke style. [CHAR LIMIT=35] -->
+ <string name="pointer_stroke_style">Pointer stroke style</string>
+ <!-- White value for pointer stroke style. [CHAR LIMIT=35] -->
+ <string name="pointer_stroke_style_name_white">White</string>
+ <!-- Black value pointer stroke style. [CHAR LIMIT=35] -->
+ <string name="pointer_stroke_style_name_black">Black</string>
+ <!-- None value for pointer stroke style. [CHAR LIMIT=35] -->
+ <string name="pointer_stroke_style_name_none">None</string>
<!-- Title for the button to trigger the 'touch gesture' education. [CHAR LIMIT=35] -->
<string name="trackpad_touch_gesture">Learn touchpad gestures</string>
<!-- Search keywords for "touchpad" -->
@@ -8043,8 +8051,11 @@
<!-- Do not disturb: Delete text button presented in a dialog to confirm the user would like to delete the selected DND rules. [CHAR LIMIT=30] -->
<string name="zen_mode_schedule_delete">Delete</string>
+ <!-- Priority Modes: Menu option for renaming a mode on its configuration page [CHAR LIMIT=40] -->
+ <string name="zen_mode_menu_rename_mode">Rename</string>
+
<!-- Do not disturb: Menu option for deleting a mode on its configuration page [CHAR LIMIT=40] -->
- <string name="zen_mode_menu_delete_mode">Delete mode</string>
+ <string name="zen_mode_menu_delete_mode">Delete</string>
<!-- Do not disturb: Confirmation dialog asking the user whether they would like to delete the named mode [CHAR LIMIT: 40] -->
<string name="zen_mode_delete_mode_confirmation">Delete \"<xliff:g id="mode" example="My Schedule">%1$s</xliff:g>\" mode?</string>
@@ -8114,6 +8125,14 @@
<!-- Do not disturb: mode page section title [CHAR LIMIT=80] -->
<string name="mode_device_effects_title">Additional actions</string>
+ <!-- Summary for the Sound Do not Disturb option when DND isn't currently on. [CHAR LIMIT=NONE]-->
+ <string name="modes_sound_summary_off">
+ {count, plural,
+ =0 {Off}
+ =1 {Off / 1 mode can turn on automatically}
+ other {Off / # modes can turn on automatically}
+ }
+ </string>
<!-- Do not disturb: display settings title [CHAR LIMIT=80] -->
<string name="mode_display_settings_title">Display settings</string>
@@ -9328,8 +9347,6 @@
<string name="zen_mode_apps_priority_apps">Selected apps</string>
<!-- [CHAR LIMIT=60] Zen mode settings: no apps will be able to bypass dnd -->
<string name="zen_mode_apps_none_apps">None</string>
- <!-- [CHAR LIMIT=60] Zen mode settings: all apps will be able to bypass dnd -->
- <string name="zen_mode_apps_all_apps">All</string>
<!-- [CHAR LIMIT=NONE] Zen mode settings: Lists apps that can bypass DND. For example, "Nest, Messages, and 2 more can interrupt". -->
<string name="zen_mode_apps_subtext">
{count, plural, offset:2
@@ -9340,6 +9357,8 @@
other {{app_1}, {app_2}, and # more can interrupt}
}
</string>
+ <!-- Text displayed (for a brief time) while the list of bypassing apps is being fetched. Will be replaced by a zen_mode_apps_subtext. [CHAR_LIMIT=60] -->
+ <string name="zen_mode_apps_calculating">Calculating\u2026</string>
<!-- [CHAR LIMIT=100] Zen mode settings: Allow apps to bypass DND -->
<string name="zen_mode_bypassing_apps">Allow apps to override</string>
@@ -9441,14 +9460,17 @@
<!-- [CHAR LIMIT=NONE] Zen mode summary spoken when changing mode by voice: Turn on all notifications. -->
<string name="zen_mode_summary_always">Change to always interrupt</string>
- <!-- [CHAR LIMIT=20] Caption of the action button to change the name of a mode. -->
- <string name="zen_mode_action_change_name">Rename</string>
+ <!-- Priority Modes: Title for the "rename mode" screen [CHAR LIMIT=20] -->
+ <string name="zen_mode_rename_title">Edit mode</string>
- <!-- [CHAR LIMIT=20] Caption of the action button to change the icon of a mode. -->
- <string name="zen_mode_action_change_icon">Change icon</string>
+ <!-- Priority Modes: Title for the "add mode" screen [CHAR LIMIT=20] -->
+ <string name="zen_mode_new_custom_title">Add mode</string>
- <!-- [CHAR LIMIT=40] Zen mode settings: Title for the "choose mode icon" screen -->
- <string name="zen_mode_icon_picker_title">Change icon</string>
+ <!-- Priority Modes: Default name for new custom modes [CHAR LIMIT=30] -->
+ <string name="zen_mode_new_custom_default_name">Custom mode</string>
+
+ <!-- Priority Modes: Hint for the EditText for editing a mode's name [CHAR LIMIT=30] -->
+ <string name="zen_mode_edit_name_hint">Mode name</string>
<!-- Content description for help icon button [CHAR LIMIT=20] -->
<string name="warning_button_text">Warning</string>
@@ -13467,6 +13489,10 @@
<string name="live_caption_disabled">Off</string>
<!-- Summary of the Live Caption enabled state. -->
<string name="live_caption_enabled">On</string>
+ <!-- State description for the Audio Balance seek bar, with left reported before right. -->
+ <string name="audio_seek_bar_state_left_first">Audio %1$d%% left, %2$d%% right</string>
+ <!-- State description for the Audio Balance seek bar, with right reported before left. -->
+ <string name="audio_seek_bar_state_right_first">Audio %1$d%% right, %2$d%% left</string>
<!-- Warning text about the visibility of device name. [CHAR LIMIT=NONE] -->
<string name="about_phone_device_name_warning">Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot.</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 0bd0406..2d40af0 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -982,14 +982,15 @@
</style>
<style name="PrivateSpaceBulletPointTextFontStyle" parent="@style/PrivateSpaceSetupTextFontStyle">
- <item name="android:paddingLeft">16dp</item>
+ <item name="android:paddingStart">16dp</item>
<item name="android:textSize">16sp</item>
+ <item name="android:textAlignment">viewStart</item>
</style>
<style name="PrivateSpaceBulletPointIconStyle">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
- <item name="android:layout_alignParentLeft">true</item>
+ <item name="android:layout_alignParentStart">true</item>
<item name="android:layout_alignParentTop">true</item>
</style>
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index b673a083..1e5b241 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -135,6 +135,15 @@
settings:controller="com.android.settings.notification.zen.ZenModePreferenceController"
/>
+ <com.android.settingslib.RestrictedPreference
+ android:key="modes_notifications"
+ android:order="18"
+ android:title="@string/zen_modes_list_title"
+ settings:useAdminDisabledSummary="true"
+ android:fragment="com.android.settings.notification.modes.ZenModesListFragment"
+ settings:controller="com.android.settings.notification.modes.ZenModesLinkPreferenceController"
+ />
+
<SwitchPreferenceCompat
android:key="lock_screen_show_only_unseen_notifs"
android:order="19"
diff --git a/res/xml/language_settings.xml b/res/xml/language_settings.xml
index 167f9d9..4613cb0 100644
--- a/res/xml/language_settings.xml
+++ b/res/xml/language_settings.xml
@@ -18,7 +18,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:title="@string/languages_settings">
+ android:title="@string/languages_settings"
+ android:key="languages_settings">
<PreferenceCategory
android:key="languages_category"
android:title="@string/locale_picker_category_title">
@@ -68,4 +69,4 @@
android:fragment="com.android.settings.tts.TextToSpeechSettings"
settings:searchable="false"/>
</PreferenceCategory>
-</PreferenceScreen>
\ No newline at end of file
+</PreferenceScreen>
diff --git a/res/xml/languages.xml b/res/xml/languages.xml
index 844b7fa..d478aa1 100644
--- a/res/xml/languages.xml
+++ b/res/xml/languages.xml
@@ -18,7 +18,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:title="@string/language_picker_title">
+ android:title="@string/language_picker_title"
+ android:key="system_languages">
<com.android.settingslib.widget.TopIntroPreference
android:title="@string/desc_introduction_of_language_picker"
diff --git a/res/xml/modes_icon_picker.xml b/res/xml/modes_edit_name_icon.xml
similarity index 71%
rename from res/xml/modes_icon_picker.xml
rename to res/xml/modes_edit_name_icon.xml
index cb0ff30..2109c77 100644
--- a/res/xml/modes_icon_picker.xml
+++ b/res/xml/modes_edit_name_icon.xml
@@ -18,20 +18,30 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:key="zen_mode_icon_picker_page"
+ android:key="zen_mode_edit_name_icon"
settings:searchable="false"
- android:title="@string/zen_mode_icon_picker_title">
+ android:title="@string/zen_mode_rename_title">
<com.android.settingslib.widget.LayoutPreference
- android:key="current_icon"
+ android:key="chosen_icon"
android:layout="@layout/settings_entity_header" />
<com.android.settings.applications.SpacePreference
android:layout_height="16dp" />
<com.android.settingslib.widget.LayoutPreference
+ android:key="name"
+ android:layout="@layout/modes_edit_name" />
+
+ <com.android.settings.applications.SpacePreference
+ android:layout_height="32dp" />
+
+ <com.android.settingslib.widget.LayoutPreference
android:key="icon_list"
android:selectable="false"
android:layout="@layout/modes_icon_list"/>
+ <com.android.settingslib.widget.LayoutPreference
+ android:key="done"
+ android:layout="@layout/modes_edit_done_button" />
</PreferenceScreen>
diff --git a/res/xml/modes_rule_settings.xml b/res/xml/modes_rule_settings.xml
index 5be206e..0c687b2 100644
--- a/res/xml/modes_rule_settings.xml
+++ b/res/xml/modes_rule_settings.xml
@@ -28,10 +28,6 @@
android:selectable="false"
android:layout="@layout/modes_activation_button"/>
- <com.android.settingslib.widget.ActionButtonsPreference
- android:key="actions"
- android:selectable="true" />
-
<PreferenceCategory
android:title="@string/mode_interruption_filter_title"
android:key="modes_filters">
diff --git a/res/xml/regional_preference_main_page.xml b/res/xml/regional_preference_main_page.xml
index 2746caa..5c46f8c 100644
--- a/res/xml/regional_preference_main_page.xml
+++ b/res/xml/regional_preference_main_page.xml
@@ -16,7 +16,8 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:title="@string/regional_preferences_title">
+ android:title="@string/regional_preferences_title"
+ android:key="regional_preferences">
<com.android.settingslib.widget.TopIntroPreference
android:title="@string/regional_preferences_main_page_sub_title"
diff --git a/res/xml/regional_preference_numbering_system_page.xml b/res/xml/regional_preference_numbering_system_page.xml
index 9263c09..b15dd8a 100644
--- a/res/xml/regional_preference_numbering_system_page.xml
+++ b/res/xml/regional_preference_numbering_system_page.xml
@@ -13,4 +13,6 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" />
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:key="regional_preference_numbering_system"/>
diff --git a/res/xml/regional_preferences_first_day_of_week.xml b/res/xml/regional_preferences_first_day_of_week.xml
index 2d0bec3..d9de5e5 100644
--- a/res/xml/regional_preferences_first_day_of_week.xml
+++ b/res/xml/regional_preferences_first_day_of_week.xml
@@ -17,7 +17,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:title="@string/first_day_of_week_preferences_title">
+ android:title="@string/first_day_of_week_preferences_title"
+ android:key="regional_preference_first_day_of_week">
<com.android.settingslib.widget.TopIntroPreference
android:title="@string/regional_preferences_option_page_sub_title"
diff --git a/res/xml/regional_preferences_temperature.xml b/res/xml/regional_preferences_temperature.xml
index 547dd38..2519dfa 100644
--- a/res/xml/regional_preferences_temperature.xml
+++ b/res/xml/regional_preferences_temperature.xml
@@ -17,7 +17,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:title="@string/temperature_preferences_title">
+ android:title="@string/temperature_preferences_title"
+ android:key="regional_preference_temperature">
<com.android.settingslib.widget.TopIntroPreference
android:title="@string/regional_preferences_option_page_sub_title"
diff --git a/res/xml/security_advanced_settings.xml b/res/xml/security_advanced_settings.xml
index c220e99..f1556d6 100644
--- a/res/xml/security_advanced_settings.xml
+++ b/res/xml/security_advanced_settings.xml
@@ -140,13 +140,13 @@
settings:controller="com.android.settings.security.VisiblePatternProfilePreferenceController" />
<com.android.settingslib.RestrictedPreference
- android:key="fingerprint_settings_profile"
- android:title="@string/security_settings_work_fingerprint_preference_title"
+ android:key="face_settings_profile"
+ android:title="@string/security_settings_face_profile_preference_title"
android:summary="@string/summary_placeholder" />
<com.android.settingslib.RestrictedPreference
- android:key="face_settings_profile"
- android:title="@string/security_settings_face_profile_preference_title"
+ android:key="fingerprint_settings_profile"
+ android:title="@string/security_settings_work_fingerprint_preference_title"
android:summary="@string/summary_placeholder" />
<com.android.settingslib.RestrictedPreference
diff --git a/res/xml/security_settings_combined_biometric_profile.xml b/res/xml/security_settings_combined_biometric_profile.xml
index 1ab4106..42078f5 100644
--- a/res/xml/security_settings_combined_biometric_profile.xml
+++ b/res/xml/security_settings_combined_biometric_profile.xml
@@ -27,19 +27,19 @@
android:title="@string/biometric_settings_category_ways_to_unlock">
<com.android.settingslib.RestrictedPreference
- android:key="biometric_fingerprint_settings_profile"
- android:title="@string/security_settings_work_fingerprint_preference_title"
- android:summary="@string/summary_placeholder"
- settings:keywords="@string/keywords_fingerprint_settings"
- settings:controller="com.android.settings.biometrics.combination.BiometricFingerprintProfileStatusPreferenceController" />
-
- <com.android.settingslib.RestrictedPreference
android:key="biometric_face_settings_profile"
android:title="@string/security_settings_face_profile_preference_title"
android:summary="@string/summary_placeholder"
settings:keywords="@string/keywords_face_settings"
settings:controller="com.android.settings.biometrics.combination.BiometricFaceProfileStatusPreferenceController" />
+ <com.android.settingslib.RestrictedPreference
+ android:key="biometric_fingerprint_settings_profile"
+ android:title="@string/security_settings_work_fingerprint_preference_title"
+ android:summary="@string/summary_placeholder"
+ settings:keywords="@string/keywords_fingerprint_settings"
+ settings:controller="com.android.settings.biometrics.combination.BiometricFingerprintProfileStatusPreferenceController" />
+
</PreferenceCategory>
<PreferenceCategory
diff --git a/res/xml/terms_of_address.xml b/res/xml/terms_of_address.xml
index a29a55c3..90cbe52 100644
--- a/res/xml/terms_of_address.xml
+++ b/res/xml/terms_of_address.xml
@@ -17,7 +17,8 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:title="@string/terms_of_address_title">
+ android:title="@string/terms_of_address_title"
+ android:key="terms_of_address">
<com.android.settingslib.widget.TopIntroPreference
android:title="@string/terms_of_address_intro_title"
diff --git a/res/xml/trackpad_settings.xml b/res/xml/trackpad_settings.xml
index 065f03b..52a32b2 100644
--- a/res/xml/trackpad_settings.xml
+++ b/res/xml/trackpad_settings.xml
@@ -68,6 +68,12 @@
android:order="50"
settings:controller="com.android.settings.inputmethod.PointerFillStylePreferenceController"/>
+ <com.android.settings.inputmethod.PointerStrokeStylePreference
+ android:key="pointer_stroke_style"
+ android:title="@string/pointer_stroke_style"
+ android:order="60"
+ settings:controller="com.android.settings.inputmethod.PointerStrokeStylePreferenceController"/>
+
<com.android.settings.widget.LabeledSeekBarPreference
android:key="pointer_scale"
android:title="@string/pointer_scale"
diff --git a/res/xml/wifi_network_details_fragment2.xml b/res/xml/wifi_network_details_fragment2.xml
index 518b65d..da4ea5a 100644
--- a/res/xml/wifi_network_details_fragment2.xml
+++ b/res/xml/wifi_network_details_fragment2.xml
@@ -35,6 +35,11 @@
android:icon="@drawable/ic_info_outline_24dp"
android:selectable="false"/>
+ <com.android.settingslib.widget.BannerMessagePreference
+ android:key="wep_less_secure_warning"
+ android:title="@string/wep_network_less_secure_warning_title"
+ settings:controller="com.android.settings.wifi.WepLessSecureWarningController"/>
+
<!-- Buttons -->
<com.android.settingslib.widget.ActionButtonsPreference
android:key="buttons"
diff --git a/res/xml/zen_mode_apps_settings.xml b/res/xml/zen_mode_apps_settings.xml
index 4ee14e4..a452143 100644
--- a/res/xml/zen_mode_apps_settings.xml
+++ b/res/xml/zen_mode_apps_settings.xml
@@ -34,11 +34,6 @@
android:title="@string/zen_mode_apps_none_apps"
settings:searchable="false"/>
- <com.android.settingslib.widget.SelectorWithWidgetPreference
- android:key="zen_mode_apps_all"
- android:title="@string/zen_mode_apps_all_apps"
- settings:searchable="false"/>
-
</PreferenceCategory>
</PreferenceScreen>
\ No newline at end of file
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 27a628c..e94769a 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -1423,13 +1423,15 @@
public static void setupEdgeToEdge(@NonNull FragmentActivity activity) {
ViewCompat.setOnApplyWindowInsetsListener(activity.findViewById(android.R.id.content),
(v, windowInsets) -> {
- Insets insets = windowInsets.getInsets(
+ final Insets insets = windowInsets.getInsets(
WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime()
| WindowInsetsCompat.Type.displayCutout());
- int statusBarHeight = activity.getWindow().getDecorView().getRootWindowInsets()
- .getInsets(WindowInsetsCompat.Type.statusBars()).top;
+ int newInsetsTop = activity.getWindow().getDecorView().getRootWindowInsets()
+ .getInsets(WindowInsetsCompat.Type.statusBars()
+ | WindowInsetsCompat.Type.captionBar()).top;
+
// Apply the insets paddings to the view.
- v.setPadding(insets.left, statusBarHeight, insets.right, insets.bottom);
+ v.setPadding(insets.left, newInsetsTop, insets.right, insets.bottom);
// Return CONSUMED if you don't want the window insets to keep being
// passed down to descendant views.
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index 8441c2a..d746434 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -16,6 +16,8 @@
package com.android.settings.accessibility;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+
import android.accessibilityservice.AccessibilityServiceInfo;
import android.accessibilityservice.AccessibilityShortcutInfo;
import android.app.settings.SettingsEnums;
@@ -283,7 +285,7 @@
info.getResolveInfo().serviceInfo.packageName,
info.getResolveInfo().serviceInfo.name);
final boolean shortcutEnabled = AccessibilityUtil.getUserShortcutTypesFromSettings(
- context, componentName) != AccessibilityUtil.UserShortcutType.EMPTY;
+ context, componentName) != DEFAULT;
serviceState = shortcutEnabled
? context.getText(R.string.accessibility_summary_shortcut_enabled)
: context.getText(R.string.generic_accessibility_feature_shortcut_off);
diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
index 92259ac..0f55a11 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
@@ -16,6 +16,10 @@
package com.android.settings.accessibility;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_GENERAL_CATEGORY;
import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_SAVED_QS_TOOLTIP_TYPE;
@@ -43,6 +47,7 @@
import androidx.preference.PreferenceScreen;
import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
@@ -310,7 +315,7 @@
}
/**
- * Returns accumulated {@link AccessibilityUtil.UserShortcutType} checkbox value or
+ * Returns accumulated {@link UserShortcutType} checkbox value or
* {@code NOT_SET} if checkboxes did not exist.
*/
protected int getShortcutTypeCheckBoxValue() {
@@ -318,12 +323,12 @@
return NOT_SET;
}
- int value = AccessibilityUtil.UserShortcutType.EMPTY;
+ int value = DEFAULT;
if (mSoftwareTypeCheckBox.isChecked()) {
- value |= AccessibilityUtil.UserShortcutType.SOFTWARE;
+ value |= SOFTWARE;
}
if (mHardwareTypeCheckBox.isChecked()) {
- value |= AccessibilityUtil.UserShortcutType.HARDWARE;
+ value |= HARDWARE;
}
return value;
}
@@ -374,7 +379,7 @@
saveNonEmptyUserShortcutType(value);
AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), value, getComponentName());
AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), ~value, getComponentName());
- final boolean shortcutAssigned = value != AccessibilityUtil.UserShortcutType.EMPTY;
+ final boolean shortcutAssigned = value != DEFAULT;
mShortcutPreference.setChecked(shortcutAssigned);
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
@@ -406,7 +411,7 @@
@VisibleForTesting
void saveNonEmptyUserShortcutType(int type) {
- if (type == AccessibilityUtil.UserShortcutType.EMPTY) {
+ if (type == DEFAULT) {
return;
}
@@ -456,16 +461,16 @@
// LINT.IfChange(shortcut_type_ui_order)
final List<CharSequence> list = new ArrayList<>();
if (android.view.accessibility.Flags.a11yQsShortcut()) {
- if (hasShortcutType(shortcutTypes, AccessibilityUtil.UserShortcutType.QUICK_SETTINGS)) {
+ if (hasShortcutType(shortcutTypes, QUICK_SETTINGS)) {
final CharSequence qsTitle = context.getText(
R.string.accessibility_feature_shortcut_setting_summary_quick_settings);
list.add(qsTitle);
}
}
- if (hasShortcutType(shortcutTypes, AccessibilityUtil.UserShortcutType.SOFTWARE)) {
+ if (hasShortcutType(shortcutTypes, SOFTWARE)) {
list.add(getSoftwareShortcutTypeSummary(context));
}
- if (hasShortcutType(shortcutTypes, AccessibilityUtil.UserShortcutType.HARDWARE)) {
+ if (hasShortcutType(shortcutTypes, HARDWARE)) {
final CharSequence hardwareTitle = context.getText(
R.string.accessibility_shortcut_hardware_keyword);
list.add(hardwareTitle);
@@ -488,13 +493,13 @@
if (value == NOT_SET) {
final int lastNonEmptyUserShortcutType = getUserPreferredShortcutTypes();
value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
- : AccessibilityUtil.UserShortcutType.EMPTY;
+ : DEFAULT;
}
mSoftwareTypeCheckBox.setChecked(
- hasShortcutType(value, AccessibilityUtil.UserShortcutType.SOFTWARE));
+ hasShortcutType(value, SOFTWARE));
mHardwareTypeCheckBox.setChecked(
- hasShortcutType(value, AccessibilityUtil.UserShortcutType.HARDWARE));
+ hasShortcutType(value, HARDWARE));
}
private int restoreOnConfigChangedValue() {
@@ -503,7 +508,7 @@
return savedValue;
}
- private boolean hasShortcutType(int value, @AccessibilityUtil.UserShortcutType int type) {
+ private boolean hasShortcutType(int value, @UserShortcutType int type) {
return (value & type) == type;
}
@@ -514,7 +519,7 @@
final int shortcutTypes = AccessibilityUtil.getUserShortcutTypesFromSettings(
getPrefContext(), getComponentName());
- if (shortcutTypes != AccessibilityUtil.UserShortcutType.EMPTY) {
+ if (shortcutTypes != DEFAULT) {
final PreferredShortcut shortcut = new PreferredShortcut(
getComponentName().flattenToString(), shortcutTypes);
PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutsTutorial.java b/src/com/android/settings/accessibility/AccessibilityShortcutsTutorial.java
index e286c63..8d908ac 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutsTutorial.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutsTutorial.java
@@ -19,7 +19,11 @@
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
-import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TWOFINGER_DOUBLETAP;
import android.app.settings.SettingsEnums;
import android.content.Context;
@@ -171,7 +175,7 @@
AlertDialog dialog, List<TutorialPage> pages, int selectedPageIndex) {
final Button button = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
final int pageType = pages.get(selectedPageIndex).getType();
- final int buttonVisibility = pageType == UserShortcutType.SOFTWARE ? VISIBLE : GONE;
+ final int buttonVisibility = (pageType == SOFTWARE) ? VISIBLE : GONE;
button.setVisibility(buttonVisibility);
if (buttonVisibility == VISIBLE) {
final int textResId = AccessibilityUtil.isFloatingMenuEnabled(dialog.getContext())
@@ -393,7 +397,7 @@
}
private static TutorialPage createSoftwareTutorialPage(@NonNull Context context) {
- final int type = UserShortcutType.SOFTWARE;
+ final int type = SOFTWARE;
final CharSequence title = getSoftwareTitle(context);
final View image = createSoftwareImage(context);
final CharSequence instruction = getSoftwareInstruction(context);
@@ -405,7 +409,7 @@
}
private static TutorialPage createHardwareTutorialPage(@NonNull Context context) {
- final int type = UserShortcutType.HARDWARE;
+ final int type = HARDWARE;
final CharSequence title =
context.getText(R.string.accessibility_tutorial_dialog_title_volume);
final View image =
@@ -420,7 +424,7 @@
}
private static TutorialPage createTripleTapTutorialPage(@NonNull Context context) {
- final int type = UserShortcutType.TRIPLETAP;
+ final int type = TRIPLETAP;
final CharSequence title =
context.getText(R.string.accessibility_tutorial_dialog_title_triple);
final View image =
@@ -436,7 +440,7 @@
}
private static TutorialPage createTwoFingerTripleTapTutorialPage(@NonNull Context context) {
- final int type = UserShortcutType.TWOFINGER_DOUBLETAP;
+ final int type = TWOFINGER_DOUBLETAP;
final int numFingers = 2;
final CharSequence title = context.getString(
R.string.accessibility_tutorial_dialog_title_two_finger_double, numFingers);
@@ -454,7 +458,7 @@
private static TutorialPage createQuickSettingsTutorialPage(
@NonNull Context context, @NonNull CharSequence featureName, boolean inSetupWizard) {
- final int type = UserShortcutType.QUICK_SETTINGS;
+ final int type = QUICK_SETTINGS;
final CharSequence title =
context.getText(R.string.accessibility_tutorial_dialog_title_quick_setting);
final View image =
@@ -494,28 +498,28 @@
// LINT.IfChange(shortcut_type_ui_order)
final List<TutorialPage> tutorialPages = new ArrayList<>();
if (android.view.accessibility.Flags.a11yQsShortcut()) {
- if ((shortcutTypes & UserShortcutType.QUICK_SETTINGS)
- == UserShortcutType.QUICK_SETTINGS) {
+ if ((shortcutTypes & QUICK_SETTINGS)
+ == QUICK_SETTINGS) {
tutorialPages.add(
createQuickSettingsTutorialPage(context, featureName, inSetupWizard));
}
}
- if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
+ if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
tutorialPages.add(createSoftwareTutorialPage(context));
}
- if ((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE) {
+ if ((shortcutTypes & HARDWARE) == HARDWARE) {
tutorialPages.add(createHardwareTutorialPage(context));
}
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- if ((shortcutTypes & UserShortcutType.TWOFINGER_DOUBLETAP)
- == UserShortcutType.TWOFINGER_DOUBLETAP) {
+ if ((shortcutTypes & TWOFINGER_DOUBLETAP)
+ == TWOFINGER_DOUBLETAP) {
tutorialPages.add(createTwoFingerTripleTapTutorialPage(context));
}
}
- if ((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP) {
+ if ((shortcutTypes & TRIPLETAP) == TRIPLETAP) {
tutorialPages.add(createTripleTapTutorialPage(context));
}
// LINT.ThenChange(/res/xml/accessibility_edit_shortcuts.xml:shortcut_type_ui_order)
diff --git a/src/com/android/settings/accessibility/AccessibilityUtil.java b/src/com/android/settings/accessibility/AccessibilityUtil.java
index afc7b84..5bf2a3e 100644
--- a/src/com/android/settings/accessibility/AccessibilityUtil.java
+++ b/src/com/android/settings/accessibility/AccessibilityUtil.java
@@ -21,6 +21,12 @@
import static android.view.WindowInsets.Type.systemBars;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.ComponentName;
import android.content.Context;
@@ -41,6 +47,7 @@
import androidx.annotation.StringRes;
import androidx.annotation.VisibleForTesting;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.accessibility.util.ShortcutUtils;
import java.lang.annotation.Retention;
@@ -82,41 +89,6 @@
new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);
/**
- * Annotation for different user shortcut type UI type.
- *
- * {@code EMPTY} for displaying default value.
- * {@code SOFTWARE} for displaying specifying the accessibility services or features which
- * choose accessibility button in the navigation bar as preferred shortcut.
- * {@code HARDWARE} for displaying specifying the accessibility services or features which
- * choose accessibility shortcut as preferred shortcut.
- * {@code TRIPLETAP} for displaying specifying magnification to be toggled via quickly
- * tapping screen 3 times as preferred shortcut.
- * {@code TWOFINGER_DOUBLETAP} for displaying specifying magnification to be toggled via
- * quickly tapping screen 2 times with two fingers as preferred shortcut.
- * {@code QUICK_SETTINGS} for displaying specifying the accessibility services or features which
- * choose Quick Settings as preferred shortcut.
- */
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({
- UserShortcutType.EMPTY,
- UserShortcutType.SOFTWARE,
- UserShortcutType.HARDWARE,
- UserShortcutType.TRIPLETAP,
- UserShortcutType.TWOFINGER_DOUBLETAP,
- UserShortcutType.QUICK_SETTINGS,
- })
-
- /** Denotes the user shortcut type. */
- public @interface UserShortcutType {
- int EMPTY = 0;
- int SOFTWARE = 1;
- int HARDWARE = 1 << 1;
- int TRIPLETAP = 1 << 2;
- int TWOFINGER_DOUBLETAP = 1 << 3;
- int QUICK_SETTINGS = 1 << 4;
- }
-
- /**
* Denotes the quick setting tooltip type.
*
* {@code GUIDE_TO_EDIT} for QS tiles that need to be added by editing.
@@ -230,11 +202,11 @@
return;
}
- if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
- optInValueToSettings(context, UserShortcutType.SOFTWARE, componentName);
+ if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+ optInValueToSettings(context, SOFTWARE, componentName);
}
- if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
- optInValueToSettings(context, UserShortcutType.HARDWARE, componentName);
+ if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+ optInValueToSettings(context, HARDWARE, componentName);
}
}
@@ -301,11 +273,11 @@
return;
}
- if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
- optOutValueFromSettings(context, UserShortcutType.SOFTWARE, componentName);
+ if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+ optOutValueFromSettings(context, SOFTWARE, componentName);
}
- if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
- optOutValueFromSettings(context, UserShortcutType.HARDWARE, componentName);
+ if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+ optOutValueFromSettings(context, HARDWARE, componentName);
}
}
@@ -364,16 +336,16 @@
static boolean hasValuesInSettings(Context context, int shortcutTypes,
@NonNull ComponentName componentName) {
boolean exist = false;
- if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
- exist = hasValueInSettings(context, UserShortcutType.SOFTWARE, componentName);
+ if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+ exist = hasValueInSettings(context, SOFTWARE, componentName);
}
- if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
- exist |= hasValueInSettings(context, UserShortcutType.HARDWARE, componentName);
+ if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+ exist |= hasValueInSettings(context, HARDWARE, componentName);
}
if (android.view.accessibility.Flags.a11yQsShortcut()) {
- if ((shortcutTypes & UserShortcutType.QUICK_SETTINGS)
- == UserShortcutType.QUICK_SETTINGS) {
- exist |= hasValueInSettings(context, UserShortcutType.QUICK_SETTINGS,
+ if ((shortcutTypes & QUICK_SETTINGS)
+ == QUICK_SETTINGS) {
+ exist |= hasValueInSettings(context, QUICK_SETTINGS,
componentName);
}
}
@@ -427,16 +399,16 @@
*/
static int getUserShortcutTypesFromSettings(Context context,
@NonNull ComponentName componentName) {
- int shortcutTypes = UserShortcutType.EMPTY;
- if (hasValuesInSettings(context, UserShortcutType.SOFTWARE, componentName)) {
- shortcutTypes |= UserShortcutType.SOFTWARE;
+ int shortcutTypes = DEFAULT;
+ if (hasValuesInSettings(context, SOFTWARE, componentName)) {
+ shortcutTypes |= SOFTWARE;
}
- if (hasValuesInSettings(context, UserShortcutType.HARDWARE, componentName)) {
- shortcutTypes |= UserShortcutType.HARDWARE;
+ if (hasValuesInSettings(context, HARDWARE, componentName)) {
+ shortcutTypes |= HARDWARE;
}
if (android.view.accessibility.Flags.a11yQsShortcut()) {
- if (hasValuesInSettings(context, UserShortcutType.QUICK_SETTINGS, componentName)) {
- shortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+ if (hasValuesInSettings(context, QUICK_SETTINGS, componentName)) {
+ shortcutTypes |= QUICK_SETTINGS;
}
}
@@ -455,11 +427,11 @@
}
switch (shortcutType) {
- case UserShortcutType.SOFTWARE:
+ case SOFTWARE:
return Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS;
- case UserShortcutType.HARDWARE:
+ case HARDWARE:
return Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
- case UserShortcutType.TRIPLETAP:
+ case TRIPLETAP:
return Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED;
default:
throw new IllegalArgumentException(
diff --git a/src/com/android/settings/accessibility/BalanceSeekBar.java b/src/com/android/settings/accessibility/BalanceSeekBar.java
index 19301ae..7441d6f 100644
--- a/src/com/android/settings/accessibility/BalanceSeekBar.java
+++ b/src/com/android/settings/accessibility/BalanceSeekBar.java
@@ -20,6 +20,7 @@
import static com.android.settings.Utils.isNightMode;
+import android.annotation.StringRes;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.Resources;
@@ -86,6 +87,14 @@
Settings.System.putFloatForUser(mContext.getContentResolver(),
Settings.System.MASTER_BALANCE, balance, UserHandle.USER_CURRENT);
}
+ final int max = getMax();
+ if (Flags.audioBalanceStateDescription() && max > 0) {
+ seekBar.setStateDescription(createStateDescription(mContext,
+ R.string.audio_seek_bar_state_left_first,
+ R.string.audio_seek_bar_state_right_first,
+ progress,
+ max));
+ }
// If fromUser is false, the call is a set from the framework on creation or on
// internal update. The progress may be zero, ignore (don't change system settings).
@@ -161,5 +170,19 @@
canvas.restore();
super.onDraw(canvas);
}
+
+ private static CharSequence createStateDescription(Context context,
+ @StringRes int resIdLeftFirst, @StringRes int resIdRightFirst,
+ int progress, float max) {
+ final boolean isLayoutRtl = context.getResources().getConfiguration().getLayoutDirection()
+ == LAYOUT_DIRECTION_RTL;
+ final int rightPercent = (int) (100 * (progress / max));
+ final int leftPercent = 100 - rightPercent;
+ if (rightPercent > leftPercent || (rightPercent == leftPercent && isLayoutRtl)) {
+ return context.getString(resIdRightFirst, rightPercent, leftPercent);
+ } else {
+ return context.getString(resIdLeftFirst, leftPercent, rightPercent);
+ }
+ }
}
diff --git a/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
index 21800b9..3ba0f0d 100644
--- a/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
+++ b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
@@ -111,9 +111,8 @@
@Override
public int getAvailabilityStatus() {
if (Flags.keyboardCategoryEnabled()
- && mContext.getResources().getBoolean(R.bool.config_keyboard_vibration_supported)
- && mContext.getResources().getFloat(
- com.android.internal.R.dimen.config_keyboardHapticFeedbackFixedAmplitude) > 0) {
+ && mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_keyboardVibrationSettingsSupported)) {
return AVAILABLE;
}
return UNSUPPORTED_ON_DEVICE;
@@ -155,8 +154,8 @@
}
private boolean isKeyboardVibrationSwitchEnabled() {
- return Settings.System.getInt(mContext.getContentResolver(), KEYBOARD_VIBRATION_ENABLED,
- mVibrator.isDefaultKeyboardVibrationEnabled() ? ON : OFF) == ON;
+ return Settings.System.getInt(
+ mContext.getContentResolver(), KEYBOARD_VIBRATION_ENABLED, ON) == ON;
}
private boolean updateKeyboardVibrationSetting(boolean enable) {
diff --git a/src/com/android/settings/accessibility/PreferredShortcut.java b/src/com/android/settings/accessibility/PreferredShortcut.java
index 1654992..c26960e 100644
--- a/src/com/android/settings/accessibility/PreferredShortcut.java
+++ b/src/com/android/settings/accessibility/PreferredShortcut.java
@@ -19,7 +19,7 @@
import android.content.ComponentName;
import android.text.TextUtils;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.google.common.base.Objects;
diff --git a/src/com/android/settings/accessibility/PreferredShortcuts.java b/src/com/android/settings/accessibility/PreferredShortcuts.java
index 895430a..c3e64ab 100644
--- a/src/com/android/settings/accessibility/PreferredShortcuts.java
+++ b/src/com/android/settings/accessibility/PreferredShortcuts.java
@@ -16,6 +16,10 @@
package com.android.settings.accessibility;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+
import android.content.ComponentName;
import android.content.Context;
import android.content.SharedPreferences;
@@ -27,8 +31,8 @@
import androidx.annotation.VisibleForTesting;
import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.accessibility.util.ShortcutUtils;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import java.util.HashSet;
import java.util.Map;
@@ -43,18 +47,18 @@
/**
* Retrieves the user preferred shortcut types for the given {@code componentName} from
* SharedPreferences. If the user doesn't have a preferred shortcut,
- * {@link ShortcutConstants.UserShortcutType.SOFTWARE} is returned.
+ * {@link SOFTWARE} is returned.
*
* @param context {@link Context} to access the {@link SharedPreferences}
* @param componentName Name of the service or activity, should be the format of {@link
* ComponentName#flattenToString()}.
- * @return {@link ShortcutConstants.UserShortcutType}
+ * @return {@link UserShortcutType}
*/
- @ShortcutConstants.UserShortcutType
+ @UserShortcutType
public static int retrieveUserShortcutType(
@NonNull Context context, @NonNull String componentName) {
return retrieveUserShortcutType(
- context, componentName, ShortcutConstants.UserShortcutType.SOFTWARE);
+ context, componentName, SOFTWARE);
}
/**
@@ -66,13 +70,13 @@
* ComponentName#flattenToString()}.
* @param defaultTypes The default shortcut types to use if the user doesn't have a
* preferred shortcut.
- * @return {@link ShortcutConstants.UserShortcutType}
+ * @return {@link UserShortcutType}
*/
- @ShortcutConstants.UserShortcutType
+ @UserShortcutType
public static int retrieveUserShortcutType(
@NonNull Context context,
@NonNull String componentName,
- @ShortcutConstants.UserShortcutType int defaultTypes) {
+ @UserShortcutType int defaultTypes) {
// Create a mutable set to modify
final Set<String> info = new HashSet<>(getFromSharedPreferences(context));
@@ -121,7 +125,7 @@
final Map<Integer, Set<String>> shortcutTypeToTargets = new ArrayMap<>();
for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
if (!Flags.a11yQsShortcut()
- && shortcutType == ShortcutConstants.UserShortcutType.QUICK_SETTINGS) {
+ && shortcutType == QUICK_SETTINGS) {
// Skip saving quick setting as preferred shortcut option when flag is not enabled
continue;
}
@@ -132,14 +136,14 @@
}
for (String target : components) {
- int shortcutTypes = ShortcutConstants.UserShortcutType.DEFAULT;
+ int shortcutTypes = DEFAULT;
for (Map.Entry<Integer, Set<String>> entry : shortcutTypeToTargets.entrySet()) {
if (entry.getValue().contains(target)) {
shortcutTypes |= entry.getKey();
}
}
- if (shortcutTypes != ShortcutConstants.UserShortcutType.DEFAULT) {
+ if (shortcutTypes != DEFAULT) {
final PreferredShortcut shortcut = new PreferredShortcut(
target, shortcutTypes);
PreferredShortcuts.saveUserShortcutType(context, shortcut);
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index e4d7925..8bbc7a8 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -16,6 +16,10 @@
package com.android.settings.accessibility;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
import android.app.Activity;
@@ -55,11 +59,11 @@
import androidx.preference.PreferenceScreen;
import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
@@ -677,13 +681,13 @@
if (value == NOT_SET) {
final int lastNonEmptyUserShortcutType = getUserPreferredShortcutTypes();
value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
- : UserShortcutType.EMPTY;
+ : DEFAULT;
}
mSoftwareTypeCheckBox.setChecked(
- hasShortcutType(value, UserShortcutType.SOFTWARE));
+ hasShortcutType(value, SOFTWARE));
mHardwareTypeCheckBox.setChecked(
- hasShortcutType(value, UserShortcutType.HARDWARE));
+ hasShortcutType(value, HARDWARE));
}
private int restoreOnConfigChangedValue() {
@@ -705,12 +709,12 @@
return NOT_SET;
}
- int value = UserShortcutType.EMPTY;
+ int value = DEFAULT;
if (mSoftwareTypeCheckBox.isChecked()) {
- value |= UserShortcutType.SOFTWARE;
+ value |= SOFTWARE;
}
if (mHardwareTypeCheckBox.isChecked()) {
- value |= UserShortcutType.HARDWARE;
+ value |= HARDWARE;
}
return value;
}
@@ -730,16 +734,16 @@
final List<CharSequence> list = new ArrayList<>();
if (android.view.accessibility.Flags.a11yQsShortcut()) {
- if (hasShortcutType(shortcutTypes, UserShortcutType.QUICK_SETTINGS)) {
+ if (hasShortcutType(shortcutTypes, QUICK_SETTINGS)) {
final CharSequence qsTitle = context.getText(
R.string.accessibility_feature_shortcut_setting_summary_quick_settings);
list.add(qsTitle);
}
}
- if (hasShortcutType(shortcutTypes, UserShortcutType.SOFTWARE)) {
+ if (hasShortcutType(shortcutTypes, SOFTWARE)) {
list.add(getSoftwareShortcutTypeSummary(context));
}
- if (hasShortcutType(shortcutTypes, UserShortcutType.HARDWARE)) {
+ if (hasShortcutType(shortcutTypes, HARDWARE)) {
final CharSequence hardwareTitle = context.getText(
R.string.accessibility_shortcut_hardware_keyword);
list.add(hardwareTitle);
@@ -793,7 +797,7 @@
saveNonEmptyUserShortcutType(value);
AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), value, mComponentName);
AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), ~value, mComponentName);
- final boolean shortcutAssigned = value != UserShortcutType.EMPTY;
+ final boolean shortcutAssigned = value != DEFAULT;
mShortcutPreference.setChecked(shortcutAssigned);
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
@@ -814,7 +818,7 @@
final int shortcutTypes = AccessibilityUtil.getUserShortcutTypesFromSettings(
getPrefContext(), mComponentName);
- if (shortcutTypes != UserShortcutType.EMPTY) {
+ if (shortcutTypes != DEFAULT) {
final PreferredShortcut shortcut = new PreferredShortcut(
mComponentName.flattenToString(), shortcutTypes);
PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
@@ -909,7 +913,7 @@
@VisibleForTesting
void saveNonEmptyUserShortcutType(int type) {
- if (type == UserShortcutType.EMPTY) {
+ if (type == DEFAULT) {
return;
}
@@ -996,7 +1000,7 @@
*/
@ShortcutConstants.UserShortcutType
protected int getDefaultShortcutTypes() {
- return ShortcutConstants.UserShortcutType.SOFTWARE;
+ return SOFTWARE;
}
/**
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index b1ad7f7..34ed5cb 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -18,6 +18,12 @@
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TWOFINGER_DOUBLETAP;
import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
@@ -51,13 +57,13 @@
import androidx.preference.SwitchPreferenceCompat;
import androidx.preference.TwoStatePreference;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.accessibility.Flags;
import com.android.settings.DialogCreatable;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
import com.android.settings.utils.LocaleUtils;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -365,19 +371,19 @@
return NOT_SET;
}
- int value = UserShortcutType.EMPTY;
+ int value = DEFAULT;
if (mSoftwareTypeCheckBox.isChecked()) {
- value |= UserShortcutType.SOFTWARE;
+ value |= SOFTWARE;
}
if (mHardwareTypeCheckBox.isChecked()) {
- value |= UserShortcutType.HARDWARE;
+ value |= HARDWARE;
}
if (mTripleTapTypeCheckBox.isChecked()) {
- value |= UserShortcutType.TRIPLETAP;
+ value |= TRIPLETAP;
}
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
if (mTwoFingerTripleTapTypeCheckBox.isChecked()) {
- value |= UserShortcutType.TWOFINGER_DOUBLETAP;
+ value |= TWOFINGER_DOUBLETAP;
}
}
return value;
@@ -427,18 +433,18 @@
if (value == NOT_SET) {
final int lastNonEmptyUserShortcutType = getUserPreferredShortcutTypes();
value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
- : UserShortcutType.EMPTY;
+ : DEFAULT;
}
mSoftwareTypeCheckBox.setChecked(
- hasShortcutType(value, UserShortcutType.SOFTWARE));
+ hasShortcutType(value, SOFTWARE));
mHardwareTypeCheckBox.setChecked(
- hasShortcutType(value, UserShortcutType.HARDWARE));
+ hasShortcutType(value, HARDWARE));
mTripleTapTypeCheckBox.setChecked(
- hasShortcutType(value, UserShortcutType.TRIPLETAP));
+ hasShortcutType(value, TRIPLETAP));
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
mTwoFingerTripleTapTypeCheckBox.setChecked(
- hasShortcutType(value, UserShortcutType.TWOFINGER_DOUBLETAP));
+ hasShortcutType(value, TWOFINGER_DOUBLETAP));
}
}
@@ -529,28 +535,28 @@
// LINT.IfChange(shortcut_type_ui_order)
final List<CharSequence> list = new ArrayList<>();
if (android.view.accessibility.Flags.a11yQsShortcut()) {
- if (hasShortcutType(shortcutTypes, UserShortcutType.QUICK_SETTINGS)) {
+ if (hasShortcutType(shortcutTypes, QUICK_SETTINGS)) {
final CharSequence qsTitle = context.getText(
R.string.accessibility_feature_shortcut_setting_summary_quick_settings);
list.add(qsTitle);
}
}
- if (hasShortcutType(shortcutTypes, UserShortcutType.SOFTWARE)) {
+ if (hasShortcutType(shortcutTypes, SOFTWARE)) {
list.add(getSoftwareShortcutTypeSummary(context));
}
- if (hasShortcutType(shortcutTypes, UserShortcutType.HARDWARE)) {
+ if (hasShortcutType(shortcutTypes, HARDWARE)) {
final CharSequence hardwareTitle = context.getText(
R.string.accessibility_shortcut_hardware_keyword);
list.add(hardwareTitle);
}
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- if (hasShortcutType(shortcutTypes, UserShortcutType.TWOFINGER_DOUBLETAP)) {
+ if (hasShortcutType(shortcutTypes, TWOFINGER_DOUBLETAP)) {
final CharSequence twoFingerDoubleTapTitle = context.getString(
R.string.accessibility_shortcut_two_finger_double_tap_keyword, 2);
list.add(twoFingerDoubleTapTitle);
}
}
- if (hasShortcutType(shortcutTypes, UserShortcutType.TRIPLETAP)) {
+ if (hasShortcutType(shortcutTypes, TRIPLETAP)) {
final CharSequence tripleTapTitle = context.getText(
R.string.accessibility_shortcut_triple_tap_keyword);
list.add(tripleTapTitle);
@@ -573,7 +579,7 @@
saveNonEmptyUserShortcutType(value);
optInAllMagnificationValuesToSettings(getPrefContext(), value);
optOutAllMagnificationValuesFromSettings(getPrefContext(), ~value);
- mShortcutPreference.setChecked(value != UserShortcutType.EMPTY);
+ mShortcutPreference.setChecked(value != DEFAULT);
mShortcutPreference.setSummary(
getShortcutTypeSummary(getPrefContext()));
@@ -673,7 +679,7 @@
@Override
protected void updateShortcutPreferenceData() {
final int shortcutTypes = getUserShortcutTypeFromSettings(getPrefContext());
- if (shortcutTypes != UserShortcutType.EMPTY) {
+ if (shortcutTypes != DEFAULT) {
final PreferredShortcut shortcut = new PreferredShortcut(
MAGNIFICATION_CONTROLLER_NAME, shortcutTypes);
PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
@@ -708,7 +714,7 @@
@VisibleForTesting
void saveNonEmptyUserShortcutType(int type) {
- if (type == UserShortcutType.EMPTY) {
+ if (type == DEFAULT) {
return;
}
@@ -719,25 +725,25 @@
@VisibleForTesting
static void optInAllMagnificationValuesToSettings(Context context, int shortcutTypes) {
- if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
- optInMagnificationValueToSettings(context, UserShortcutType.SOFTWARE);
+ if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+ optInMagnificationValueToSettings(context, SOFTWARE);
}
- if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
- optInMagnificationValueToSettings(context, UserShortcutType.HARDWARE);
+ if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+ optInMagnificationValueToSettings(context, HARDWARE);
}
- if (((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP)) {
- optInMagnificationValueToSettings(context, UserShortcutType.TRIPLETAP);
+ if (((shortcutTypes & TRIPLETAP) == TRIPLETAP)) {
+ optInMagnificationValueToSettings(context, TRIPLETAP);
}
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- if (((shortcutTypes & UserShortcutType.TWOFINGER_DOUBLETAP)
- == UserShortcutType.TWOFINGER_DOUBLETAP)) {
- optInMagnificationValueToSettings(context, UserShortcutType.TWOFINGER_DOUBLETAP);
+ if (((shortcutTypes & TWOFINGER_DOUBLETAP)
+ == TWOFINGER_DOUBLETAP)) {
+ optInMagnificationValueToSettings(context, TWOFINGER_DOUBLETAP);
}
}
if (android.view.accessibility.Flags.a11yQsShortcut()) {
- if (((shortcutTypes & UserShortcutType.QUICK_SETTINGS)
- == UserShortcutType.QUICK_SETTINGS)) {
- optInMagnificationValueToSettings(context, UserShortcutType.QUICK_SETTINGS);
+ if (((shortcutTypes & QUICK_SETTINGS)
+ == QUICK_SETTINGS)) {
+ optInMagnificationValueToSettings(context, QUICK_SETTINGS);
}
}
}
@@ -757,14 +763,14 @@
return;
}
- if (shortcutType == UserShortcutType.TRIPLETAP) {
+ if (shortcutType == TRIPLETAP) {
Settings.Secure.putInt(context.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, ON);
return;
}
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- if (shortcutType == UserShortcutType.TWOFINGER_DOUBLETAP) {
+ if (shortcutType == TWOFINGER_DOUBLETAP) {
Settings.Secure.putInt(
context.getContentResolver(),
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
@@ -790,7 +796,7 @@
Settings.Secure.putString(context.getContentResolver(), targetKey, joiner.toString());
// The size setting defaults to unknown. If the user has ever manually changed the size
// before, we do not automatically change it.
- if (shortcutType == UserShortcutType.SOFTWARE
+ if (shortcutType == SOFTWARE
&& Settings.Secure.getInt(context.getContentResolver(),
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
FloatingMenuSizePreferenceController.Size.UNKNOWN)
@@ -804,25 +810,25 @@
@VisibleForTesting
static void optOutAllMagnificationValuesFromSettings(Context context,
int shortcutTypes) {
- if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
- optOutMagnificationValueFromSettings(context, UserShortcutType.SOFTWARE);
+ if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+ optOutMagnificationValueFromSettings(context, SOFTWARE);
}
- if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
- optOutMagnificationValueFromSettings(context, UserShortcutType.HARDWARE);
+ if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+ optOutMagnificationValueFromSettings(context, HARDWARE);
}
- if (((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP)) {
- optOutMagnificationValueFromSettings(context, UserShortcutType.TRIPLETAP);
+ if (((shortcutTypes & TRIPLETAP) == TRIPLETAP)) {
+ optOutMagnificationValueFromSettings(context, TRIPLETAP);
}
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- if (((shortcutTypes & UserShortcutType.TWOFINGER_DOUBLETAP)
- == UserShortcutType.TWOFINGER_DOUBLETAP)) {
- optOutMagnificationValueFromSettings(context, UserShortcutType.TWOFINGER_DOUBLETAP);
+ if (((shortcutTypes & TWOFINGER_DOUBLETAP)
+ == TWOFINGER_DOUBLETAP)) {
+ optOutMagnificationValueFromSettings(context, TWOFINGER_DOUBLETAP);
}
}
if (android.view.accessibility.Flags.a11yQsShortcut()) {
- if (((shortcutTypes & UserShortcutType.QUICK_SETTINGS)
- == UserShortcutType.QUICK_SETTINGS)) {
- optOutMagnificationValueFromSettings(context, UserShortcutType.QUICK_SETTINGS);
+ if (((shortcutTypes & QUICK_SETTINGS)
+ == QUICK_SETTINGS)) {
+ optOutMagnificationValueFromSettings(context, QUICK_SETTINGS);
}
}
}
@@ -842,14 +848,14 @@
return;
}
- if (shortcutType == UserShortcutType.TRIPLETAP) {
+ if (shortcutType == TRIPLETAP) {
Settings.Secure.putInt(context.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF);
return;
}
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- if (shortcutType == UserShortcutType.TWOFINGER_DOUBLETAP) {
+ if (shortcutType == TWOFINGER_DOUBLETAP) {
Settings.Secure.putInt(
context.getContentResolver(),
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
@@ -884,20 +890,20 @@
static boolean hasMagnificationValuesInSettings(Context context, int shortcutTypes) {
boolean exist = false;
- if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
- exist = hasMagnificationValueInSettings(context, UserShortcutType.SOFTWARE);
+ if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+ exist = hasMagnificationValueInSettings(context, SOFTWARE);
}
- if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
- exist |= hasMagnificationValueInSettings(context, UserShortcutType.HARDWARE);
+ if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+ exist |= hasMagnificationValueInSettings(context, HARDWARE);
}
- if (((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP)) {
- exist |= hasMagnificationValueInSettings(context, UserShortcutType.TRIPLETAP);
+ if (((shortcutTypes & TRIPLETAP) == TRIPLETAP)) {
+ exist |= hasMagnificationValueInSettings(context, TRIPLETAP);
}
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- if (((shortcutTypes & UserShortcutType.TWOFINGER_DOUBLETAP)
- == UserShortcutType.TWOFINGER_DOUBLETAP)) {
+ if (((shortcutTypes & TWOFINGER_DOUBLETAP)
+ == TWOFINGER_DOUBLETAP)) {
exist |= hasMagnificationValueInSettings(context,
- UserShortcutType.TWOFINGER_DOUBLETAP);
+ TWOFINGER_DOUBLETAP);
}
}
return exist;
@@ -905,13 +911,13 @@
private static boolean hasMagnificationValueInSettings(Context context,
@UserShortcutType int shortcutType) {
- if (shortcutType == UserShortcutType.TRIPLETAP) {
+ if (shortcutType == TRIPLETAP) {
return Settings.Secure.getInt(context.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF) == ON;
}
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- if (shortcutType == UserShortcutType.TWOFINGER_DOUBLETAP) {
+ if (shortcutType == TWOFINGER_DOUBLETAP) {
return Settings.Secure.getInt(context.getContentResolver(),
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
OFF) == ON;
@@ -937,19 +943,19 @@
}
private static int getUserShortcutTypeFromSettings(Context context) {
- int shortcutTypes = UserShortcutType.EMPTY;
- if (hasMagnificationValuesInSettings(context, UserShortcutType.SOFTWARE)) {
- shortcutTypes |= UserShortcutType.SOFTWARE;
+ int shortcutTypes = DEFAULT;
+ if (hasMagnificationValuesInSettings(context, SOFTWARE)) {
+ shortcutTypes |= SOFTWARE;
}
- if (hasMagnificationValuesInSettings(context, UserShortcutType.HARDWARE)) {
- shortcutTypes |= UserShortcutType.HARDWARE;
+ if (hasMagnificationValuesInSettings(context, HARDWARE)) {
+ shortcutTypes |= HARDWARE;
}
- if (hasMagnificationValuesInSettings(context, UserShortcutType.TRIPLETAP)) {
- shortcutTypes |= UserShortcutType.TRIPLETAP;
+ if (hasMagnificationValuesInSettings(context, TRIPLETAP)) {
+ shortcutTypes |= TRIPLETAP;
}
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
- if (hasMagnificationValuesInSettings(context, UserShortcutType.TWOFINGER_DOUBLETAP)) {
- shortcutTypes |= UserShortcutType.TWOFINGER_DOUBLETAP;
+ if (hasMagnificationValuesInSettings(context, TWOFINGER_DOUBLETAP)) {
+ shortcutTypes |= TWOFINGER_DOUBLETAP;
}
}
return shortcutTypes;
@@ -964,7 +970,7 @@
// Get the user shortcut type from settings provider.
final int userShortcutType = getUserShortcutTypeFromSettings(context);
final CharSequence featureState =
- (userShortcutType != AccessibilityUtil.UserShortcutType.EMPTY)
+ (userShortcutType != DEFAULT)
? context.getText(R.string.accessibility_summary_shortcut_enabled)
: context.getText(R.string.generic_accessibility_feature_shortcut_off);
final CharSequence featureSummary = context.getText(R.string.magnification_feature_summary);
diff --git a/src/com/android/settings/accessibility/VolumeShortcutToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/VolumeShortcutToggleAccessibilityServicePreferenceFragment.java
index eccfbce..11aa565 100644
--- a/src/com/android/settings/accessibility/VolumeShortcutToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/VolumeShortcutToggleAccessibilityServicePreferenceFragment.java
@@ -16,12 +16,14 @@
package com.android.settings.accessibility;
-import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.os.Bundle;
import android.view.View;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.settings.R;
/**
@@ -44,7 +46,7 @@
mShortcutPreference.setSummary(hardwareTitle);
mShortcutPreference.setSettingsEditable(false);
- setAllowedPreferredShortcutType(UserShortcutType.HARDWARE);
+ setAllowedPreferredShortcutType(HARDWARE);
}
@Override
@@ -56,9 +58,9 @@
final boolean hasRequestAccessibilityButtonFlag =
(info.flags & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;
if (hasRequestAccessibilityButtonFlag && isServiceOn) {
- shortcutTypes |= UserShortcutType.SOFTWARE;
+ shortcutTypes |= SOFTWARE;
} else {
- shortcutTypes &= (~UserShortcutType.SOFTWARE);
+ shortcutTypes &= (~SOFTWARE);
}
return shortcutTypes;
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
index f4c928c..1ee980e 100644
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
+++ b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
@@ -43,7 +43,6 @@
import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal;
-import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity;
import com.android.settings.core.FeatureFlags;
import com.android.settings.homepage.DeepLinkHomepageActivity;
import com.android.settings.homepage.DeepLinkHomepageActivityInternal;
@@ -255,8 +254,6 @@
.buildSearchIntent(mContext, SettingsEnums.SETTINGS_HOMEPAGE);
addActivityFilter(activityFilters, searchIntent);
}
- addActivityFilter(activityFilters, FingerprintEnrollmentActivity.class);
- addActivityFilter(activityFilters, FingerprintEnrollmentActivity.InternalActivity.class);
addActivityFilter(activityFilters, FingerprintEnrollIntroduction.class);
addActivityFilter(activityFilters, FingerprintEnrollIntroductionInternal.class);
addActivityFilter(activityFilters, FingerprintEnrollEnrolling.class);
diff --git a/src/com/android/settings/biometrics/BiometricUtils.java b/src/com/android/settings/biometrics/BiometricUtils.java
index 3376d86..09b2dba 100644
--- a/src/com/android/settings/biometrics/BiometricUtils.java
+++ b/src/com/android/settings/biometrics/BiometricUtils.java
@@ -16,7 +16,6 @@
package com.android.settings.biometrics;
-import static android.util.FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT;
import android.annotation.IntDef;
import android.app.Activity;
@@ -33,7 +32,6 @@
import android.os.storage.StorageManager;
import android.text.BidiFormatter;
import android.text.SpannableStringBuilder;
-import android.util.FeatureFlagUtils;
import android.util.Log;
import android.view.Surface;
@@ -50,7 +48,6 @@
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollFindSensor;
import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction;
-import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockGeneric;
import com.android.settings.password.ChooseLockSettingsHelper;
@@ -254,17 +251,8 @@
public static Intent getFingerprintFindSensorIntent(@NonNull Context context,
@NonNull Intent activityIntent) {
final boolean isSuw = WizardManagerHelper.isAnySetupWizard(activityIntent);
- final Intent intent;
- if (FeatureFlagUtils.isEnabled(context, SETTINGS_BIOMETRICS2_ENROLLMENT)) {
- intent = new Intent(context, isSuw
- ? FingerprintEnrollmentActivity.SetupActivity.class
- : FingerprintEnrollmentActivity.class);
- intent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, true);
- } else {
- intent = new Intent(context, isSuw
- ? SetupFingerprintEnrollFindSensor.class
- : FingerprintEnrollFindSensor.class);
- }
+ final Intent intent = new Intent(context, isSuw
+ ? SetupFingerprintEnrollFindSensor.class : FingerprintEnrollFindSensor.class);
if (isSuw) {
SetupWizardUtils.copySetupExtras(activityIntent, intent);
}
@@ -279,16 +267,8 @@
public static Intent getFingerprintIntroIntent(@NonNull Context context,
@NonNull Intent activityIntent) {
final boolean isSuw = WizardManagerHelper.isAnySetupWizard(activityIntent);
- final Intent intent;
- if (FeatureFlagUtils.isEnabled(context, SETTINGS_BIOMETRICS2_ENROLLMENT)) {
- intent = new Intent(context, isSuw
- ? FingerprintEnrollmentActivity.SetupActivity.class
- : FingerprintEnrollmentActivity.class);
- } else {
- intent = new Intent(context, isSuw
- ? SetupFingerprintEnrollIntroduction.class
- : FingerprintEnrollIntroduction.class);
- }
+ final Intent intent = new Intent(context, isSuw
+ ? SetupFingerprintEnrollIntroduction.class : FingerprintEnrollIntroduction.class);
if (isSuw) {
WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index d35cda4..cb7d617 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -45,7 +45,6 @@
import android.text.InputFilter;
import android.text.Spanned;
import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
import android.util.Log;
import android.view.View;
import android.widget.ImeAwareEditText;
@@ -70,8 +69,6 @@
import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.biometrics.GatekeeperPasswordProvider;
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity;
import com.android.settings.core.SettingsBaseActivity;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.dashboard.DashboardFragment;
@@ -833,15 +830,8 @@
if (KEY_FINGERPRINT_ADD.equals(key)) {
mIsEnrolling = true;
Intent intent = new Intent();
- if (FeatureFlagUtils.isEnabled(getContext(),
- FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)) {
- intent.setClassName(SETTINGS_PACKAGE_NAME,
- FingerprintEnrollmentActivity.InternalActivity.class.getName());
- intent.putExtra(EnrollmentRequest.EXTRA_SKIP_FIND_SENSOR, true);
- } else {
- intent.setClassName(SETTINGS_PACKAGE_NAME,
- FingerprintEnrollEnrolling.class.getName());
- }
+ intent.setClassName(SETTINGS_PACKAGE_NAME,
+ FingerprintEnrollEnrolling.class.getName());
intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
if (mCalibrator != null) {
@@ -1126,12 +1116,7 @@
private void addFirstFingerprint(@Nullable Long gkPwHandle) {
Intent intent = new Intent();
intent.setClassName(SETTINGS_PACKAGE_NAME,
- FeatureFlagUtils.isEnabled(getActivity(),
- FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)
- ? FingerprintEnrollmentActivity.InternalActivity.class.getName()
- : FingerprintEnrollIntroductionInternal.class.getName()
- );
-
+ FingerprintEnrollIntroductionInternal.class.getName());
intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, true);
intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE);
diff --git a/src/com/android/settings/biometrics2/OWNERS b/src/com/android/settings/biometrics2/OWNERS
deleted file mode 100644
index ac806eb..0000000
--- a/src/com/android/settings/biometrics2/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-# The Android Biometric team should approve all changes to biometrics2 subdirectories.
-set noparent
-
-include /src/com/android/settings/biometrics/OWNERS
diff --git a/src/com/android/settings/biometrics2/data/repository/FingerprintRepository.java b/src/com/android/settings/biometrics2/data/repository/FingerprintRepository.java
deleted file mode 100644
index 6a9892a..0000000
--- a/src/com/android/settings/biometrics2/data/repository/FingerprintRepository.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.data.repository;
-
-import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
-
-import android.app.admin.DevicePolicyManager;
-import android.content.Context;
-import android.content.res.Resources;
-import android.hardware.fingerprint.Fingerprint;
-import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.R;
-import com.android.settings.biometrics.ParentalControlsUtils;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-
-import java.util.List;
-
-/**
- * This repository is used to call all APIs in {@link FingerprintManager}
- */
-public class FingerprintRepository {
-
- private static final String TAG = "FingerprintRepository";
- @NonNull
- private final FingerprintManager mFingerprintManager;
-
- private List<FingerprintSensorPropertiesInternal> mSensorPropertiesCache;
-
- public FingerprintRepository(@NonNull FingerprintManager fingerprintManager) {
- mFingerprintManager = fingerprintManager;
- mFingerprintManager.addAuthenticatorsRegisteredCallback(
- new IFingerprintAuthenticatorsRegisteredCallback.Stub() {
- @Override
- public void onAllAuthenticatorsRegistered(
- List<FingerprintSensorPropertiesInternal> sensors) {
- mSensorPropertiesCache = sensors;
- }
- });
- }
-
- /**
- * The first sensor type is UDFPS sensor or not
- */
- public boolean canAssumeUdfps() {
- FingerprintSensorPropertiesInternal prop = getFirstFingerprintSensorPropertiesInternal();
- return prop != null && prop.isAnyUdfpsType();
- }
-
- /**
- * The first sensor type is Side fps sensor or not
- */
- public boolean canAssumeSfps() {
- FingerprintSensorPropertiesInternal prop = getFirstFingerprintSensorPropertiesInternal();
- return prop != null && prop.isAnySidefpsType();
- }
-
- /**
- * Get max possible number of fingerprints for a user
- */
- public int getMaxFingerprints() {
- FingerprintSensorPropertiesInternal prop = getFirstFingerprintSensorPropertiesInternal();
- return prop != null ? prop.maxEnrollmentsPerUser : 0;
- }
-
- /**
- * Get number of fingerprints that this user enrolled.
- */
- public int getNumOfEnrolledFingerprintsSize(int userId) {
- final List<Fingerprint> list = mFingerprintManager.getEnrolledFingerprints(userId);
- return list != null ? list.size() : 0;
- }
-
- /**
- * Get maximum possible fingerprints in setup wizard flow
- */
- public int getMaxFingerprintsInSuw(@NonNull Resources resources) {
- return resources.getInteger(R.integer.suw_max_fingerprints_enrollable);
- }
-
- /**
- * Gets the first FingerprintSensorPropertiesInternal from FingerprintManager
- */
- @Nullable
- public FingerprintSensorPropertiesInternal getFirstFingerprintSensorPropertiesInternal() {
- final List<FingerprintSensorPropertiesInternal> props = mSensorPropertiesCache;
- if (props == null) {
- // Handle this case if it really happens
- Log.e(TAG, "Sensor properties cache is null");
- return null;
- }
- return props.size() > 0 ? props.get(0) : null;
- }
-
- /**
- * Call FingerprintManager to generate challenge for first sensor
- */
- public void generateChallenge(int userId,
- @NonNull FingerprintManager.GenerateChallengeCallback callback) {
- mFingerprintManager.generateChallenge(userId, callback);
- }
-
- /**
- * Get parental consent required or not during enrollment process
- */
- public boolean isParentalConsentRequired(@NonNull Context context) {
- return ParentalControlsUtils.parentConsentRequired(context, TYPE_FINGERPRINT) != null;
- }
-
- /**
- * Get fingerprint is disable by admin or not
- */
- public boolean isDisabledByAdmin(@NonNull Context context, int userId) {
- return RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
- context, DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT, userId) != null;
- }
-
- /**
- * Get fingerprint enroll stage threshold
- */
- public float getEnrollStageThreshold(int index) {
- return mFingerprintManager.getEnrollStageThreshold(index);
- }
-
- /**
- * Get fingerprint enroll stage count
- */
- public int getEnrollStageCount() {
- return mFingerprintManager.getEnrollStageCount();
- }
-}
diff --git a/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProvider.java b/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProvider.java
deleted file mode 100644
index fdc5745..0000000
--- a/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProvider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.factory;
-
-import android.app.Application;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-
-/**
- * Interface for BiometricsRepositoryProvider
- */
-public interface BiometricsRepositoryProvider {
-
- /**
- * Get FingerprintRepository
- */
- @Nullable
- FingerprintRepository getFingerprintRepository(@NonNull Application application);
-}
diff --git a/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProviderImpl.java b/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProviderImpl.java
deleted file mode 100644
index 22409c8..0000000
--- a/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProviderImpl.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.factory;
-
-import android.app.Application;
-import android.hardware.fingerprint.FingerprintManager;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.Utils;
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-
-/**
- * Implementation for BiometricsRepositoryProvider
- */
-public class BiometricsRepositoryProviderImpl implements BiometricsRepositoryProvider {
-
- private static volatile FingerprintRepository sFingerprintRepository;
-
- /**
- * Get FingerprintRepository
- */
- @Nullable
- @Override
- public FingerprintRepository getFingerprintRepository(@NonNull Application application) {
- final FingerprintManager fingerprintManager =
- Utils.getFingerprintManagerOrNull(application);
- if (fingerprintManager == null) {
- return null;
- }
- if (sFingerprintRepository == null) {
- synchronized (FingerprintRepository.class) {
- if (sFingerprintRepository == null) {
- sFingerprintRepository = new FingerprintRepository(fingerprintManager);
- }
- }
- }
- return sFingerprintRepository;
- }
-}
diff --git a/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java b/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java
deleted file mode 100644
index 516f471..0000000
--- a/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.factory;
-
-import android.app.Application;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.ViewModel;
-import androidx.lifecycle.ViewModelProvider;
-import androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory;
-import androidx.lifecycle.viewmodel.CreationExtras;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.biometrics.fingerprint.FingerprintUpdater;
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.biometrics2.ui.model.CredentialModel;
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.ChallengeGenerator;
-import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollmentViewModel;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.systemui.unfold.compat.ScreenSizeFoldProvider;
-
-/**
- * View model factory for biometric enrollment fragment
- */
-public class BiometricsViewModelFactory implements ViewModelProvider.Factory {
-
- private static final String TAG = "BiometricsViewModelFactory";
-
- public static final CreationExtras.Key<ChallengeGenerator> CHALLENGE_GENERATOR_KEY =
- new CreationExtras.Key<ChallengeGenerator>() {};
- public static final CreationExtras.Key<EnrollmentRequest> ENROLLMENT_REQUEST_KEY =
- new CreationExtras.Key<EnrollmentRequest>() {};
- public static final CreationExtras.Key<CredentialModel> CREDENTIAL_MODEL_KEY =
- new CreationExtras.Key<CredentialModel>() {};
-
- @NonNull
- @Override
- @SuppressWarnings("unchecked")
- public <T extends ViewModel> T create(@NonNull Class<T> modelClass,
- @NonNull CreationExtras extras) {
- final Application application = extras.get(AndroidViewModelFactory.APPLICATION_KEY);
-
- if (application == null) {
- Log.w(TAG, "create, null application");
- return create(modelClass);
- }
- final FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
- final BiometricsRepositoryProvider provider =
- featureFactory.getBiometricsRepositoryProvider();
-
- if (modelClass.isAssignableFrom(AutoCredentialViewModel.class)) {
- final LockPatternUtils lockPatternUtils =
- featureFactory.getSecurityFeatureProvider().getLockPatternUtils(application);
- final ChallengeGenerator challengeGenerator = extras.get(CHALLENGE_GENERATOR_KEY);
- final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
- if (challengeGenerator != null && credentialModel != null) {
- return (T) new AutoCredentialViewModel(application, lockPatternUtils,
- challengeGenerator, credentialModel);
- }
- } else if (modelClass.isAssignableFrom(DeviceFoldedViewModel.class)) {
- return (T) new DeviceFoldedViewModel(new ScreenSizeFoldProvider(application),
- application.getMainExecutor());
- } else if (modelClass.isAssignableFrom(DeviceRotationViewModel.class)) {
- return (T) new DeviceRotationViewModel(application);
- } else if (modelClass.isAssignableFrom(FingerprintEnrollFindSensorViewModel.class)) {
- final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
- if (request != null) {
- return (T) new FingerprintEnrollFindSensorViewModel(application, request.isSuw());
- }
- } else if (modelClass.isAssignableFrom(FingerprintEnrollIntroViewModel.class)) {
- final FingerprintRepository repository = provider.getFingerprintRepository(application);
- final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
- final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
- if (repository != null && request != null && credentialModel != null) {
- return (T) new FingerprintEnrollIntroViewModel(application, repository, request,
- credentialModel.getUserId());
- }
- } else if (modelClass.isAssignableFrom(FingerprintEnrollmentViewModel.class)) {
- final FingerprintRepository repository = provider.getFingerprintRepository(application);
- final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
- if (repository != null && request != null) {
- return (T) new FingerprintEnrollmentViewModel(application, repository, request);
- }
- } else if (modelClass.isAssignableFrom(FingerprintEnrollProgressViewModel.class)) {
- final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
- if (credentialModel != null) {
- return (T) new FingerprintEnrollProgressViewModel(application,
- new FingerprintUpdater(application), credentialModel.getUserId());
- }
- } else if (modelClass.isAssignableFrom(FingerprintEnrollEnrollingViewModel.class)) {
- final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
- final FingerprintRepository fingerprint = provider.getFingerprintRepository(
- application);
- if (fingerprint != null && credentialModel != null) {
- return (T) new FingerprintEnrollEnrollingViewModel(application,
- credentialModel.getUserId(), fingerprint);
- }
- } else if (modelClass.isAssignableFrom(FingerprintEnrollFinishViewModel.class)) {
- final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
- final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
- final FingerprintRepository fingerprint = provider.getFingerprintRepository(
- application);
- if (fingerprint != null && credentialModel != null && request != null) {
- return (T) new FingerprintEnrollFinishViewModel(application,
- credentialModel.getUserId(), request, fingerprint);
- }
- } else if (modelClass.isAssignableFrom(FingerprintEnrollErrorDialogViewModel.class)) {
- final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
- if (request != null) {
- return (T) new FingerprintEnrollErrorDialogViewModel(application, request.isSuw());
- }
- }
- return create(modelClass);
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/CredentialModel.kt b/src/com/android/settings/biometrics2/ui/model/CredentialModel.kt
deleted file mode 100644
index 5350733..0000000
--- a/src/com/android/settings/biometrics2/ui/model/CredentialModel.kt
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.model
-
-import android.content.Intent.EXTRA_USER_ID
-import android.os.Bundle
-import android.os.UserHandle
-import androidx.annotation.VisibleForTesting
-import com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_CHALLENGE
-import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN
-import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE
-import java.time.Clock
-
-/**
- * Secret credential data including
- * 1. userId
- * 2. challenge
- * 3. token
- * 4. gkPwHandle
- */
-class CredentialModel(bundle: Bundle?, private val clock: Clock) {
-
- private val mInitMillis = clock.millis()
-
- /** userId for this credential */
- val userId: Int = (bundle ?: Bundle()).getInt(EXTRA_USER_ID, UserHandle.myUserId())
-
- private var clearGkPwHandleMillis: Long? = null
-
- /** Gatekeeper password handle */
- var gkPwHandle: Long = (bundle ?: Bundle()).getLong(EXTRA_KEY_GK_PW_HANDLE, INVALID_GK_PW_HANDLE)
- private set
-
- val isValidGkPwHandle: Boolean
- get() = gkPwHandle != INVALID_GK_PW_HANDLE
-
- /** Clear gatekeeper password handle data */
- fun clearGkPwHandle() {
- clearGkPwHandleMillis = clock.millis()
- gkPwHandle = INVALID_GK_PW_HANDLE
- }
-
- /** Check user id is valid or not */
- val isValidUserId: Boolean
- get() = userId != UserHandle.USER_NULL
-
- private var updateChallengeMillis: Long? = null
-
- var challenge: Long = (bundle ?: Bundle()).getLong(EXTRA_KEY_CHALLENGE, INVALID_CHALLENGE)
- set(value) {
- updateChallengeMillis = clock.millis()
- field = value
- }
-
- val isValidChallenge: Boolean
- get() = challenge != INVALID_CHALLENGE
-
- private var updateTokenMillis: Long? = null
-
- /** Challenge token */
- var token: ByteArray? = (bundle ?: Bundle()).getByteArray(EXTRA_KEY_CHALLENGE_TOKEN)
- set(value) {
- updateTokenMillis = clock.millis()
- field = value
- }
-
- val isValidToken: Boolean
- get() = token != null
-
- /** Returns a string representation of the object */
- override fun toString(): String {
- val gkPwHandleLen = "$gkPwHandle".length
- val tokenLen = token?.size ?: 0
- val challengeLen = "$challenge".length
- return (javaClass.simpleName + ":{initMillis:$mInitMillis"
- + ", userId:$userId"
- + ", challenge:{len:$challengeLen"
- + ", updateMillis:$updateChallengeMillis}"
- + ", token:{len:$tokenLen, isValid:$isValidToken"
- + ", updateMillis:$updateTokenMillis}"
- + ", gkPwHandle:{len:$gkPwHandleLen, isValid:$isValidGkPwHandle"
- + ", clearMillis:$clearGkPwHandleMillis}"
- + " }")
- }
-
- companion object {
- /** Default value for an invalid challenge */
- @VisibleForTesting
- const val INVALID_CHALLENGE = -1L
-
- /** Default value if GkPwHandle is invalid */
- @VisibleForTesting
- const val INVALID_GK_PW_HANDLE = 0L
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.kt b/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.kt
deleted file mode 100644
index 7b35a68..0000000
--- a/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.model
-
-/** Biometric Enrollment progress */
-class EnrollmentProgress(val steps: Int, val remaining: Int) {
-
- val isInitialStep: Boolean
- get() = steps == INITIAL_STEPS
-
- override fun toString(): String {
- return ("${javaClass.simpleName}@${Integer.toHexString(hashCode())}"
- + "{steps:$steps, remaining:$remaining}")
- }
-
- companion object {
- const val INITIAL_STEPS = -1
- const val INITIAL_REMAINING = 0
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.kt b/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.kt
deleted file mode 100644
index 4696c62..0000000
--- a/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.kt
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.model
-
-import android.content.Context
-import android.content.Intent
-import android.os.Bundle
-import com.android.settings.SetupWizardUtils
-import com.android.settings.biometrics.BiometricEnrollActivity.EXTRA_SKIP_INTRO
-import com.google.android.setupcompat.util.WizardManagerHelper
-import com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW
-
-/**
- * Biometric enrollment generic intent data, which includes
- * 1. isSuw
- * 2. isAfterSuwOrSuwSuggestedAction
- * 3. theme
- * 4. isFromSettingsSummery
- * 5. isSkipIntro
- * 6. isSkipFindSensor
- * 7. a helper method, getSetupWizardExtras
- */
-class EnrollmentRequest(
- intent: Intent,
- context: Context,
- isSetupActivity: Boolean
-) {
- val isSuw: Boolean = isSetupActivity && WizardManagerHelper.isAnySetupWizard(intent)
-
- val isAfterSuwOrSuwSuggestedAction = (isSetupActivity
- && (WizardManagerHelper.isDeferredSetupWizard(intent)
- || WizardManagerHelper.isPortalSetupWizard(intent)
- || intent.getBooleanExtra(EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, false)))
-
- private val _suwExtras = getSuwExtras(isSuw, intent)
-
- val isSkipIntro = intent.getBooleanExtra(EXTRA_SKIP_INTRO, false)
-
- val isSkipFindSensor = intent.getBooleanExtra(EXTRA_SKIP_FIND_SENSOR, false)
-
- val theme = SetupWizardUtils.getTheme(context, intent)
-
- val suwExtras: Bundle
- get() = Bundle(_suwExtras)
-
- /**
- * Returns a string representation of the object
- */
- override fun toString(): String {
- return (javaClass.simpleName + ":{isSuw:" + isSuw
- + ", isAfterSuwOrSuwSuggestedAction:" + isAfterSuwOrSuwSuggestedAction
- + "}")
- }
-
- companion object {
- const val EXTRA_SKIP_FIND_SENSOR = "skip_find_sensor"
- private fun getSuwExtras(isSuw: Boolean, intent: Intent): Bundle {
- val toIntent = Intent()
- if (isSuw) {
- SetupWizardUtils.copySetupExtras(intent, toIntent)
- }
- return toIntent.extras ?: Bundle()
- }
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.kt b/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.kt
deleted file mode 100644
index 6dd0c5c..0000000
--- a/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.model
-
-/** Enrolling status message (help or error) */
-class EnrollmentStatusMessage(val msgId: Int, string: CharSequence?) {
-
- /** Status string */
- val str: CharSequence = string ?: ""
-
- override fun toString(): String {
- return "${javaClass.simpleName}@${Integer.toHexString(hashCode())}{id:$msgId, str:$str}"
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.kt b/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.kt
deleted file mode 100644
index 4cbaffa..0000000
--- a/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.kt
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.model
-
-
-enum class FingerprintEnrollable {
- // Unconfirmed case, this value is invalid, and view shall bypass this value
- FINGERPRINT_ENROLLABLE_UNKNOWN,
- // User is allowed to enrolled a new fingerprint
- FINGERPRINT_ENROLLABLE_OK,
- // User is not allowed to enroll because the number has reached maximum
- FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-}
-
-/**
- * Fingerprint onboarding introduction page data, it contains following information which needs
- * to be passed from view model to view.
- * 1. mEnrollableStatus: User is allowed to enroll a new fingerprint or not.
- * 2. mHasScrollToBottom: User has scrolled to the bottom of this page or not.
- */
-class FingerprintEnrollIntroStatus(
- private val mHasScrollToBottom: Boolean,
- /** Enrollable status. It means that user is allowed to enroll a new fingerprint or not. */
- val enrollableStatus: FingerprintEnrollable
-) {
- /** Get info for this onboarding introduction page has scrolled to bottom or not */
- fun hasScrollToBottom(): Boolean {
- return mHasScrollToBottom
- }
-
- override fun toString(): String {
- return ("${javaClass.simpleName}@${Integer.toHexString(hashCode())}"
- + "{scrollToBottom:$mHasScrollToBottom"
- + ", enrollableStatus:$enrollableStatus}")
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.kt
deleted file mode 100644
index 9f99d17..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.app.Dialog
-import android.content.Context
-import android.content.DialogInterface
-import android.os.Bundle
-import androidx.appcompat.app.AlertDialog
-import androidx.fragment.app.DialogFragment
-import com.android.settings.R
-
-/**
- * Icon Touch dialog
- */
-class FingerprintEnrollEnrollingIconTouchDialog : DialogFragment() {
- override fun onCreateDialog(savedInstanceState: Bundle?): Dialog =
- requireActivity().bindFingerprintEnrollEnrollingIconTouchDialog()
-}
-
-fun Context.bindFingerprintEnrollEnrollingIconTouchDialog(): AlertDialog =
- AlertDialog.Builder(this, R.style.Theme_AlertDialog)
- .setTitle(R.string.security_settings_fingerprint_enroll_touch_dialog_title)
- .setMessage(R.string.security_settings_fingerprint_enroll_touch_dialog_message)
- .setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_ok) {
- dialog: DialogInterface?, _: Int -> dialog?.dismiss()
- }
- .create()
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.kt
deleted file mode 100644
index 2530628..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.kt
+++ /dev/null
@@ -1,513 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.animation.Animator
-import android.animation.ObjectAnimator
-import android.content.Context
-import android.graphics.PorterDuff
-import android.graphics.drawable.Animatable2
-import android.graphics.drawable.AnimatedVectorDrawable
-import android.graphics.drawable.Drawable
-import android.graphics.drawable.LayerDrawable
-import android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL
-import android.os.Bundle
-import android.text.TextUtils
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.MotionEvent
-import android.view.View
-import android.view.ViewGroup
-import android.view.animation.AnimationUtils.loadInterpolator
-import android.view.animation.Interpolator
-import android.widget.ProgressBar
-import android.widget.TextView
-import androidx.activity.OnBackPressedCallback
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-import kotlinx.coroutines.launch
-
-/**
- * Fragment is used to handle enrolling process for rfps
- */
-class FingerprintEnrollEnrollingRfpsFragment : Fragment() {
-
- private var _enrollingViewModel: FingerprintEnrollEnrollingViewModel? = null
- private val enrollingViewModel: FingerprintEnrollEnrollingViewModel
- get() = _enrollingViewModel!!
-
- private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
- private val progressViewModel: FingerprintEnrollProgressViewModel
- get() = _progressViewModel!!
-
- private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
- private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
- get() = _errorDialogViewModel!!
-
- private var fastOutSlowInInterpolator: Interpolator? = null
- private var linearOutSlowInInterpolator: Interpolator? = null
- private var fastOutLinearInInterpolator: Interpolator? = null
-
- private var isAnimationCancelled = false
-
- private var enrollingView: GlifLayout? = null
- private val progressBar: ProgressBar
- get() = enrollingView!!.findViewById(R.id.fingerprint_progress_bar)!!
-
- private var progressAnim: ObjectAnimator? = null
-
- private val errorText: TextView
- get() = enrollingView!!.findViewById(R.id.error_text)!!
-
- private val iconAnimationDrawable: AnimatedVectorDrawable?
- get() = (progressBar.background as LayerDrawable)
- .findDrawableByLayerId(R.id.fingerprint_animation) as AnimatedVectorDrawable?
-
- private val iconBackgroundBlinksDrawable: AnimatedVectorDrawable?
- get() = (progressBar.background as LayerDrawable)
- .findDrawableByLayerId(R.id.fingerprint_background) as AnimatedVectorDrawable?
-
- private var iconTouchCount = 0
-
- private val touchAgainRunnable = Runnable {
- showError(
- // Use enrollingView to getString to prevent activity is missing during rotation
- enrollingView!!.context.getString(
- R.string.security_settings_fingerprint_enroll_lift_touch_again
- )
- )
- }
-
- private val onSkipClickListener = View.OnClickListener { _: View? ->
- enrollingViewModel.setOnSkipPressed()
- cancelEnrollment(true)
- }
-
- private var enrollingCancelSignal: Any? = null
-
- private val progressObserver = Observer { progress: EnrollmentProgress? ->
- if (progress != null && progress.steps >= 0) {
- onEnrollmentProgressChange(progress)
- }
- }
-
- private val helpMessageObserver = Observer { helpMessage: EnrollmentStatusMessage? ->
- helpMessage?.let { onEnrollmentHelp(it) }
- }
-
- private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
- Log.d(TAG, "errorMessageObserver($errorMessage)")
- errorMessage?.let { onEnrollmentError(it) }
- }
-
- private val canceledSignalObserver = Observer { canceledSignal: Any? ->
- canceledSignal?.let { onEnrollmentCanceled(it) }
- }
-
- private val onBackPressedCallback: OnBackPressedCallback =
- object : OnBackPressedCallback(true) {
- override fun handleOnBackPressed() {
- isEnabled = false
- enrollingViewModel.setOnBackPressed()
- cancelEnrollment(true)
- }
- }
-
- override fun onAttach(context: Context) {
- ViewModelProvider(requireActivity()).let { provider ->
- _enrollingViewModel = provider[FingerprintEnrollEnrollingViewModel::class.java]
- _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
- _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
- }
- super.onAttach(context)
- requireActivity().onBackPressedDispatcher.addCallback(onBackPressedCallback)
- }
-
- override fun onDetach() {
- onBackPressedCallback.isEnabled = false
- super.onDetach()
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View {
- enrollingView = inflater.inflate(
- R.layout.fingerprint_enroll_enrolling, container, false
- ) as GlifLayout
- return enrollingView!!
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
-
- iconAnimationDrawable!!.registerAnimationCallback(iconAnimationCallback)
-
- progressBar.setOnTouchListener { _: View?, event: MotionEvent ->
- if (event.actionMasked == MotionEvent.ACTION_DOWN) {
- iconTouchCount++
- if (iconTouchCount == ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN) {
- showIconTouchDialog()
- } else {
- progressBar.postDelayed(
- showDialogRunnable,
- ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN
- )
- }
- } else if (event.actionMasked == MotionEvent.ACTION_CANCEL
- || event.actionMasked == MotionEvent.ACTION_UP
- ) {
- progressBar.removeCallbacks(showDialogRunnable)
- }
- true
- }
-
- requireActivity().bindFingerprintEnrollEnrollingRfpsView(
- view = enrollingView!!,
- onSkipClickListener = onSkipClickListener
- )
-
- fastOutSlowInInterpolator =
- loadInterpolator(requireContext(), android.R.interpolator.fast_out_slow_in)
- linearOutSlowInInterpolator =
- loadInterpolator(requireContext(), android.R.interpolator.linear_out_slow_in)
- fastOutLinearInInterpolator =
- loadInterpolator(requireContext(), android.R.interpolator.fast_out_linear_in)
-
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- errorDialogViewModel.triggerRetryFlow.collect { retryEnrollment() }
- }
- }
- }
-
- private fun retryEnrollment() {
- isAnimationCancelled = false
- startIconAnimation()
- startEnrollment()
-
- clearError()
- updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
- updateTitleAndDescription()
- }
-
- override fun onStart() {
- super.onStart()
-
- val isEnrolling = progressViewModel.isEnrolling
- val isErrorDialogShown = errorDialogViewModel.isDialogShown
- Log.d(TAG, "onStart(), isEnrolling:$isEnrolling, isErrorDialog:$isErrorDialogShown")
- if (!isErrorDialogShown) {
- isAnimationCancelled = false
- startIconAnimation()
- startEnrollment()
- }
-
- updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
- updateTitleAndDescription()
- }
-
- private fun startIconAnimation() {
- iconAnimationDrawable?.start()
- }
-
- private fun stopIconAnimation() {
- isAnimationCancelled = true
- iconAnimationDrawable?.stop()
- }
-
- override fun onStop() {
- stopIconAnimation()
- removeEnrollmentObservers()
- val isEnrolling = progressViewModel.isEnrolling
- val isConfigChange = requireActivity().isChangingConfigurations
- Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
- if (isEnrolling && !isConfigChange) {
- cancelEnrollment(false)
- }
- super.onStop()
- }
-
- private fun removeEnrollmentObservers() {
- progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
- progressViewModel.progressLiveData.removeObserver(progressObserver)
- progressViewModel.helpMessageLiveData.removeObserver(helpMessageObserver)
- }
-
- private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
- if (!progressViewModel.isEnrolling) {
- Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
- return
- }
- removeEnrollmentObservers()
- if (waitForLastCancelErrMsg) {
- progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
- } else {
- enrollingCancelSignal = null
- }
- val cancelResult: Boolean = progressViewModel.cancelEnrollment()
- if (!cancelResult) {
- Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
- }
- }
-
- private fun startEnrollment() {
- enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_ENROLL)
- if (enrollingCancelSignal == null) {
- Log.e(TAG, "startEnrollment(), failed")
- } else {
- Log.d(TAG, "startEnrollment(), success")
- }
- progressViewModel.progressLiveData.observe(this, progressObserver)
- progressViewModel.helpMessageLiveData.observe(this, helpMessageObserver)
- progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
- }
-
- private fun onEnrollmentHelp(helpMessage: EnrollmentStatusMessage) {
- Log.d(TAG, "onEnrollmentHelp($helpMessage)")
- val helpStr: CharSequence = helpMessage.str
- if (!TextUtils.isEmpty(helpStr)) {
- errorText.removeCallbacks(touchAgainRunnable)
- showError(helpStr)
- }
- }
-
- private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
- stopIconAnimation()
-
- cancelEnrollment(true)
- lifecycleScope.launch {
- Log.d(TAG, "newDialog $errorMessage")
- errorDialogViewModel.newDialog(errorMessage.msgId)
- }
- }
-
- private fun onEnrollmentCanceled(canceledSignal: Any) {
- Log.d(
- TAG,
- "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
- )
- if (enrollingCancelSignal === canceledSignal) {
- progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
- progressViewModel.clearProgressLiveData()
- if (enrollingViewModel.onBackPressed) {
- enrollingViewModel.onCancelledDueToOnBackPressed()
- } else if (enrollingViewModel.onSkipPressed) {
- enrollingViewModel.onCancelledDueToOnSkipPressed()
- }
- }
- }
-
- private fun onEnrollmentProgressChange(progress: EnrollmentProgress) {
- updateProgress(true /* animate */, progress)
- updateTitleAndDescription()
- animateFlash()
- errorText.removeCallbacks(touchAgainRunnable)
- errorText.postDelayed(touchAgainRunnable, HINT_TIMEOUT_DURATION.toLong())
- }
-
- private fun updateProgress(animate: Boolean, enrollmentProgress: EnrollmentProgress) {
- val progress = getProgress(enrollmentProgress)
- Log.d(TAG, "updateProgress($animate, $enrollmentProgress), old:${progressBar.progress}"
- + ", new:$progress")
-
- // Only clear the error when progress has been made.
- // TODO (b/234772728) Add tests.
- if (progressBar.progress < progress) {
- clearError()
- }
- if (animate) {
- animateProgress(progress)
- } else {
- progressBar.progress = progress
- if (progress >= PROGRESS_BAR_MAX) {
- delayedFinishRunnable.run()
- }
- }
- }
-
- private fun getProgress(progress: EnrollmentProgress): Int {
- if (progress.steps == -1) {
- return 0
- }
- val displayProgress = 0.coerceAtLeast(progress.steps + 1 - progress.remaining)
- return PROGRESS_BAR_MAX * displayProgress / (progress.steps + 1)
- }
-
- private fun showError(error: CharSequence) {
- errorText.text = error
- if (errorText.visibility == View.INVISIBLE) {
- errorText.visibility = View.VISIBLE
- errorText.translationY = enrollingView!!.context.resources.getDimensionPixelSize(
- R.dimen.fingerprint_error_text_appear_distance
- ).toFloat()
- errorText.alpha = 0f
- errorText.animate()
- .alpha(1f)
- .translationY(0f)
- .setDuration(200)
- .setInterpolator(linearOutSlowInInterpolator)
- .start()
- } else {
- errorText.animate().cancel()
- errorText.alpha = 1f
- errorText.translationY = 0f
- }
- if (isResumed && enrollingViewModel.isAccessibilityEnabled) {
- enrollingViewModel.vibrateError(javaClass.simpleName + "::showError")
- }
- }
-
- private fun clearError() {
- if (errorText.visibility == View.VISIBLE) {
- errorText.animate()
- .alpha(0f)
- .translationY(
- resources.getDimensionPixelSize(
- R.dimen.fingerprint_error_text_disappear_distance
- ).toFloat()
- )
- .setDuration(100)
- .setInterpolator(fastOutLinearInInterpolator)
- .withEndAction { errorText.visibility = View.INVISIBLE }
- .start()
- }
- }
-
- private fun animateProgress(progress: Int) {
- progressAnim?.cancel()
- val anim = ObjectAnimator.ofInt(
- progressBar /* target */,
- "progress" /* propertyName */,
- progressBar.progress /* values[0] */,
- progress /* values[1] */
- )
- anim.addListener(progressAnimationListener)
- anim.interpolator = fastOutSlowInInterpolator
- anim.setDuration(ANIMATION_DURATION)
- anim.start()
- progressAnim = anim
- }
-
- private fun animateFlash() {
- iconBackgroundBlinksDrawable?.start()
- }
-
- private fun updateTitleAndDescription() {
- val progressLiveData: EnrollmentProgress = progressViewModel.progressLiveData.value!!
- GlifLayoutHelper(activity!!, enrollingView!!).setDescriptionText(
- enrollingView!!.context.getString(
- if (progressLiveData.steps == -1)
- R.string.security_settings_fingerprint_enroll_start_message
- else
- R.string.security_settings_fingerprint_enroll_repeat_message
- )
- )
- }
-
- private fun showIconTouchDialog() {
- iconTouchCount = 0
- enrollingViewModel.showIconTouchDialog()
- }
-
- private val showDialogRunnable = Runnable { showIconTouchDialog() }
-
- private val progressAnimationListener: Animator.AnimatorListener =
- object : Animator.AnimatorListener {
- override fun onAnimationStart(animation: Animator) {
- startIconAnimation()
- }
-
- override fun onAnimationRepeat(animation: Animator) {}
- override fun onAnimationEnd(animation: Animator) {
- stopIconAnimation()
- if (progressBar.progress >= PROGRESS_BAR_MAX) {
- progressBar.postDelayed(delayedFinishRunnable, ANIMATION_DURATION)
- }
- }
-
- override fun onAnimationCancel(animation: Animator) {}
- }
-
- // Give the user a chance to see progress completed before jumping to the next stage.
- private val delayedFinishRunnable = Runnable { enrollingViewModel.onEnrollingDone() }
-
- private val iconAnimationCallback: Animatable2.AnimationCallback =
- object : Animatable2.AnimationCallback() {
- override fun onAnimationEnd(d: Drawable) {
- if (isAnimationCancelled) {
- return
- }
-
- // Start animation after it has ended.
- progressBar.post { startIconAnimation() }
- }
- }
-
- companion object {
- private const val DEBUG = false
- private const val TAG = "FingerprintEnrollEnrollingRfpsFragment"
- private const val PROGRESS_BAR_MAX = 10000
- private const val ANIMATION_DURATION = 250L
- private const val ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN: Long = 500
- private const val ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN = 3
-
- /**
- * If we don't see progress during this time, we show an error message to remind the users that
- * they need to lift the finger and touch again.
- */
- private const val HINT_TIMEOUT_DURATION = 2500
- }
-}
-
-fun FragmentActivity.bindFingerprintEnrollEnrollingRfpsView(
- view: GlifLayout,
- onSkipClickListener: View.OnClickListener
-) {
- GlifLayoutHelper(this, view).let {
- it.setDescriptionText(
- getString(
- R.string.security_settings_fingerprint_enroll_start_message
- )
- )
- it.setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title)
- }
-
- view.findViewById<ProgressBar>(R.id.fingerprint_progress_bar)!!
- .progressBackgroundTintMode = PorterDuff.Mode.SRC
-
- view.getMixin(FooterBarMixin::class.java).secondaryButton =
- FooterButton.Builder(this)
- .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
- .setListener(onSkipClickListener)
- .setButtonType(FooterButton.ButtonType.SKIP)
- .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
- .build()
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.kt
deleted file mode 100644
index 7faeeac..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.kt
+++ /dev/null
@@ -1,669 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.animation.Animator
-import android.animation.ObjectAnimator
-import android.annotation.RawRes
-import android.content.Context
-import android.content.res.ColorStateList
-import android.content.res.Configuration
-import android.graphics.PorterDuff
-import android.graphics.PorterDuffColorFilter
-import android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL
-import android.os.Bundle
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.MotionEvent
-import android.view.View
-import android.view.ViewGroup
-import android.view.animation.AccelerateDecelerateInterpolator
-import android.view.animation.AnimationUtils
-import android.view.animation.Interpolator
-import android.widget.ProgressBar
-import android.widget.RelativeLayout
-import androidx.activity.OnBackPressedCallback
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.airbnb.lottie.LottieAnimationView
-import com.airbnb.lottie.LottieComposition
-import com.airbnb.lottie.LottieCompositionFactory
-import com.airbnb.lottie.LottieProperty
-import com.airbnb.lottie.model.KeyPath
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-import com.google.android.setupdesign.template.DescriptionMixin
-import com.google.android.setupdesign.template.HeaderMixin
-import kotlin.math.roundToInt
-import kotlinx.coroutines.launch
-
-/**
- * Fragment is used to handle enrolling process for sfps
- */
-class FingerprintEnrollEnrollingSfpsFragment : Fragment() {
-
- private var _enrollingViewModel: FingerprintEnrollEnrollingViewModel? = null
- private val enrollingViewModel: FingerprintEnrollEnrollingViewModel
- get() = _enrollingViewModel!!
-
- private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
- private val progressViewModel: FingerprintEnrollProgressViewModel
- get() = _progressViewModel!!
-
- private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
- private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
- get() = _errorDialogViewModel!!
-
- private val fastOutSlowInInterpolator: Interpolator
- get() = AnimationUtils.loadInterpolator(
- activity,
- androidx.appcompat.R.interpolator.fast_out_slow_in,
- )
-
- private var enrollingView: GlifLayout? = null
-
- private val progressBar: ProgressBar
- get() = enrollingView!!.findViewById(R.id.fingerprint_progress_bar)!!
-
- private var progressAnim: ObjectAnimator? = null
-
- private val progressAnimationListener: Animator.AnimatorListener =
- object : Animator.AnimatorListener {
- override fun onAnimationStart(animation: Animator) {}
- override fun onAnimationRepeat(animation: Animator) {}
- override fun onAnimationEnd(animation: Animator) {
- if (progressBar.progress >= PROGRESS_BAR_MAX) {
- progressBar.postDelayed(delayedFinishRunnable, PROGRESS_ANIMATION_DURATION)
- }
- }
-
- override fun onAnimationCancel(animation: Animator) {}
- }
-
- private val illustrationLottie: LottieAnimationView
- get() = enrollingView!!.findViewById(R.id.illustration_lottie)!!
-
- private var haveShownSfpsNoAnimationLottie = false
- private var haveShownSfpsCenterLottie = false
- private var haveShownSfpsTipLottie = false
- private var haveShownSfpsLeftEdgeLottie = false
- private var haveShownSfpsRightEdgeLottie = false
-
- private var helpAnimation: ObjectAnimator? = null
-
- private var iconTouchCount = 0
-
- private val showIconTouchDialogRunnable = Runnable { showIconTouchDialog() }
-
- private var enrollingCancelSignal: Any? = null
-
- // Give the user a chance to see progress completed before jumping to the next stage.
- private val delayedFinishRunnable = Runnable { enrollingViewModel.onEnrollingDone() }
-
- private val onSkipClickListener = View.OnClickListener { _: View? ->
- enrollingViewModel.setOnSkipPressed()
- cancelEnrollment(true)
- }
-
- private val progressObserver = Observer { progress: EnrollmentProgress? ->
- if (progress != null && progress.steps >= 0) {
- onEnrollmentProgressChange(progress)
- }
- }
-
- private val helpMessageObserver = Observer { helpMessage: EnrollmentStatusMessage? ->
- helpMessage?.let { onEnrollmentHelp(it) }
- }
-
- private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
- Log.d(TAG, "errorMessageObserver($errorMessage)")
- errorMessage?.let { onEnrollmentError(it) }
- }
-
- private val canceledSignalObserver = Observer { canceledSignal: Any? ->
- Log.d(TAG, "canceledSignalObserver($canceledSignal)")
- canceledSignal?.let { onEnrollmentCanceled(it) }
- }
-
- private val onBackPressedCallback: OnBackPressedCallback =
- object : OnBackPressedCallback(true) {
- override fun handleOnBackPressed() {
- isEnabled = false
- enrollingViewModel.setOnBackPressed()
- cancelEnrollment(true)
- }
- }
-
- override fun onAttach(context: Context) {
- ViewModelProvider(requireActivity()).let { provider ->
- _enrollingViewModel = provider[FingerprintEnrollEnrollingViewModel::class.java]
- _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
- _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
- }
- super.onAttach(context)
- requireActivity().onBackPressedDispatcher.addCallback(onBackPressedCallback)
- }
-
- override fun onDetach() {
- onBackPressedCallback.isEnabled = false
- super.onDetach()
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- enrollingView = inflater.inflate(
- R.layout.sfps_enroll_enrolling,
- container, false
- ) as GlifLayout
- return enrollingView
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
-
- requireActivity().bindFingerprintEnrollEnrollingSfpsView(
- view = enrollingView!!,
- onSkipClickListener = onSkipClickListener
- )
-
- // setHelpAnimation()
- helpAnimation = ObjectAnimator.ofFloat(
- enrollingView!!.findViewById<RelativeLayout>(R.id.progress_lottie)!!,
- "translationX" /* propertyName */,
- 0f,
- HELP_ANIMATION_TRANSLATION_X,
- -1 * HELP_ANIMATION_TRANSLATION_X,
- HELP_ANIMATION_TRANSLATION_X,
- 0f
- ).also {
- it.interpolator = AccelerateDecelerateInterpolator()
- it.setDuration(HELP_ANIMATION_DURATION)
- it.setAutoCancel(false)
- }
-
- progressBar.setOnTouchListener { _: View?, event: MotionEvent ->
- if (event.actionMasked == MotionEvent.ACTION_DOWN) {
- iconTouchCount++
- if (iconTouchCount == ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN) {
- showIconTouchDialog()
- } else {
- progressBar.postDelayed(
- showIconTouchDialogRunnable,
- ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN
- )
- }
- } else if (event.actionMasked == MotionEvent.ACTION_CANCEL
- || event.actionMasked == MotionEvent.ACTION_UP
- ) {
- progressBar.removeCallbacks(showIconTouchDialogRunnable)
- }
- true
- }
-
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- errorDialogViewModel.triggerRetryFlow.collect { retryEnrollment() }
- }
- }
- }
-
- private fun retryEnrollment() {
- startEnrollment()
- updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
- }
-
- override fun onStart() {
- super.onStart()
- val isEnrolling = progressViewModel.isEnrolling
- val isErrorDialogShown = errorDialogViewModel.isDialogShown
- Log.d(TAG, "onStart(), isEnrolling:$isEnrolling, isErrorDialog:$isErrorDialogShown")
- if (!isErrorDialogShown) {
- startEnrollment()
- }
-
- updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
- progressViewModel.helpMessageLiveData.value.let {
- if (it != null) {
- onEnrollmentHelp(it)
- } else {
- clearError()
- updateTitleAndDescription()
- }
- }
- }
-
- override fun onStop() {
- removeEnrollmentObservers()
- val isEnrolling = progressViewModel.isEnrolling
- val isConfigChange = requireActivity().isChangingConfigurations
- Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
- if (isEnrolling && !isConfigChange) {
- cancelEnrollment(false)
- }
- super.onStop()
- }
-
- private fun removeEnrollmentObservers() {
- progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
- progressViewModel.progressLiveData.removeObserver(progressObserver)
- progressViewModel.helpMessageLiveData.removeObserver(helpMessageObserver)
- }
-
- private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
- if (!progressViewModel.isEnrolling) {
- Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
- return
- }
- removeEnrollmentObservers()
- if (waitForLastCancelErrMsg) {
- progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
- } else {
- enrollingCancelSignal = null
- }
- val cancelResult: Boolean = progressViewModel.cancelEnrollment()
- if (!cancelResult) {
- Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
- }
- }
-
- private fun startEnrollment() {
- enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_ENROLL)
- if (enrollingCancelSignal == null) {
- Log.e(TAG, "startEnrollment(), failed")
- } else {
- Log.d(TAG, "startEnrollment(), success")
- }
- progressViewModel.progressLiveData.observe(this, progressObserver)
- progressViewModel.helpMessageLiveData.observe(this, helpMessageObserver)
- progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
- }
-
- private fun configureEnrollmentStage(description: CharSequence, @RawRes lottie: Int) {
- GlifLayoutHelper(requireActivity(), enrollingView!!).setDescriptionText(description)
- LottieCompositionFactory.fromRawRes(activity, lottie)
- .addListener { c: LottieComposition ->
- illustrationLottie.setComposition(c)
- illustrationLottie.visibility = View.VISIBLE
- illustrationLottie.playAnimation()
- }
- }
-
- private val currentSfpsStage: Int
- get() {
- val progressLiveData: EnrollmentProgress =
- progressViewModel.progressLiveData.value
- ?: return STAGE_UNKNOWN
- val progressSteps: Int = progressLiveData.steps - progressLiveData.remaining
- return if (progressSteps < getStageThresholdSteps(0)) {
- SFPS_STAGE_NO_ANIMATION
- } else if (progressSteps < getStageThresholdSteps(1)) {
- SFPS_STAGE_CENTER
- } else if (progressSteps < getStageThresholdSteps(2)) {
- SFPS_STAGE_FINGERTIP
- } else if (progressSteps < getStageThresholdSteps(3)) {
- SFPS_STAGE_LEFT_EDGE
- } else {
- SFPS_STAGE_RIGHT_EDGE
- }
- }
-
- private fun onEnrollmentHelp(helpMessage: EnrollmentStatusMessage) {
- Log.d(TAG, "onEnrollmentHelp($helpMessage)")
- val helpStr: CharSequence = helpMessage.str
- if (helpStr.isNotEmpty()) {
- showError(helpStr)
- }
- }
-
- private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
- cancelEnrollment(true)
- lifecycleScope.launch {
- Log.d(TAG, "newDialog $errorMessage")
- errorDialogViewModel.newDialog(errorMessage.msgId)
- }
- }
-
- private fun onEnrollmentCanceled(canceledSignal: Any) {
- Log.d(
- TAG,
- "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
- )
- if (enrollingCancelSignal === canceledSignal) {
- progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
- progressViewModel.clearProgressLiveData()
- if (enrollingViewModel.onBackPressed) {
- enrollingViewModel.onCancelledDueToOnBackPressed()
- } else if (enrollingViewModel.onSkipPressed) {
- enrollingViewModel.onCancelledDueToOnSkipPressed()
- }
- }
- }
-
- private fun announceEnrollmentProgress(announcement: CharSequence) {
- enrollingViewModel.sendAccessibilityEvent(announcement)
- }
-
- private fun onEnrollmentProgressChange(progress: EnrollmentProgress) {
- updateProgress(true /* animate */, progress)
- if (enrollingViewModel.isAccessibilityEnabled) {
- val percent: Int =
- ((progress.steps - progress.remaining).toFloat() / progress.steps.toFloat() * 100).toInt()
- val announcement: CharSequence = getString(
- R.string.security_settings_sfps_enroll_progress_a11y_message, percent
- )
- announceEnrollmentProgress(announcement)
- illustrationLottie.contentDescription =
- getString(R.string.security_settings_sfps_animation_a11y_label, percent)
- }
- updateTitleAndDescription()
- }
-
- private fun updateProgress(animate: Boolean, enrollmentProgress: EnrollmentProgress) {
- if (!progressViewModel.isEnrolling) {
- Log.d(TAG, "Enrollment not started yet")
- return
- }
-
- val progress = getProgress(enrollmentProgress)
- Log.d(TAG, "updateProgress($animate, $enrollmentProgress), old:${progressBar.progress}"
- + ", new:$progress")
-
- // Only clear the error when progress has been made.
- // TODO (b/234772728) Add tests.
- if (progressBar.progress < progress) {
- clearError()
- }
- if (animate) {
- animateProgress(progress)
- } else {
- progressBar.progress = progress
- if (progress >= PROGRESS_BAR_MAX) {
- delayedFinishRunnable.run()
- }
- }
- }
-
- private fun getProgress(progress: EnrollmentProgress): Int {
- if (progress.steps == -1) {
- return 0
- }
- val displayProgress = 0.coerceAtLeast(progress.steps + 1 - progress.remaining)
- return PROGRESS_BAR_MAX * displayProgress / (progress.steps + 1)
- }
-
- private fun showError(error: CharSequence) {
- enrollingView!!.let {
- it.headerText = error
- it.headerTextView.contentDescription = error
- GlifLayoutHelper(requireActivity(), it).setDescriptionText("")
- }
-
- if (isResumed && !helpAnimation!!.isRunning) {
- helpAnimation!!.start()
- }
- applySfpsErrorDynamicColors(true)
- if (isResumed && enrollingViewModel.isAccessibilityEnabled) {
- enrollingViewModel.vibrateError(javaClass.simpleName + "::showError")
- }
- }
-
- private fun clearError() {
- applySfpsErrorDynamicColors(false)
- }
-
- private fun animateProgress(progress: Int) {
- progressAnim?.cancel()
- progressAnim = ObjectAnimator.ofInt(
- progressBar,
- "progress",
- progressBar.progress,
- progress
- ).also {
- it.addListener(progressAnimationListener)
- it.interpolator = fastOutSlowInInterpolator
- it.setDuration(PROGRESS_ANIMATION_DURATION)
- it.start()
- }
- }
-
- /**
- * Applies dynamic colors corresponding to showing or clearing errors on the progress bar
- * and finger lottie for SFPS
- */
- private fun applySfpsErrorDynamicColors(isError: Boolean) {
- progressBar.applyProgressBarDynamicColor(requireContext(), isError)
- illustrationLottie.applyLottieDynamicColor(requireContext(), isError)
- }
-
- private fun getStageThresholdSteps(index: Int): Int {
- val progressLiveData: EnrollmentProgress? =
- progressViewModel.progressLiveData.value
- if (progressLiveData == null || progressLiveData.steps == -1) {
- Log.w(TAG, "getStageThresholdSteps: Enrollment not started yet")
- return 1
- }
- return (progressLiveData.steps
- * enrollingViewModel.getEnrollStageThreshold(index)).roundToInt()
- }
-
- private fun updateTitleAndDescription() {
- val helper = GlifLayoutHelper(requireActivity(), enrollingView!!)
- if (enrollingViewModel.isAccessibilityEnabled) {
- enrollingViewModel.clearTalkback()
- helper.glifLayout.descriptionTextView.accessibilityLiveRegion =
- View.ACCESSIBILITY_LIVE_REGION_POLITE
- }
- val stage = currentSfpsStage
- if (DEBUG) {
- Log.d(
- TAG, "updateTitleAndDescription, stage:" + stage
- + ", noAnimation:" + haveShownSfpsNoAnimationLottie
- + ", center:" + haveShownSfpsCenterLottie
- + ", tip:" + haveShownSfpsTipLottie
- + ", leftEdge:" + haveShownSfpsLeftEdgeLottie
- + ", rightEdge:" + haveShownSfpsRightEdgeLottie
- )
- }
- when (stage) {
- SFPS_STAGE_NO_ANIMATION -> {
- helper.setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title)
- if (!haveShownSfpsNoAnimationLottie) {
- haveShownSfpsNoAnimationLottie = true
- illustrationLottie.contentDescription =
- getString(R.string.security_settings_sfps_animation_a11y_label, 0)
- configureEnrollmentStage(
- getString(R.string.security_settings_sfps_enroll_start_message),
- R.raw.sfps_lottie_no_animation
- )
- }
- }
-
- SFPS_STAGE_CENTER -> {
- helper.setHeaderText(R.string.security_settings_sfps_enroll_finger_center_title)
- if (!haveShownSfpsCenterLottie) {
- haveShownSfpsCenterLottie = true
- configureEnrollmentStage(
- getString(R.string.security_settings_sfps_enroll_start_message),
- R.raw.sfps_lottie_pad_center
- )
- }
- }
-
- SFPS_STAGE_FINGERTIP -> {
- helper.setHeaderText(R.string.security_settings_sfps_enroll_fingertip_title)
- if (!haveShownSfpsTipLottie) {
- haveShownSfpsTipLottie = true
- configureEnrollmentStage("", R.raw.sfps_lottie_tip)
- }
- }
-
- SFPS_STAGE_LEFT_EDGE -> {
- helper.setHeaderText(R.string.security_settings_sfps_enroll_left_edge_title)
- if (!haveShownSfpsLeftEdgeLottie) {
- haveShownSfpsLeftEdgeLottie = true
- configureEnrollmentStage("", R.raw.sfps_lottie_left_edge)
- }
- }
-
- SFPS_STAGE_RIGHT_EDGE -> {
- helper.setHeaderText(R.string.security_settings_sfps_enroll_right_edge_title)
- if (!haveShownSfpsRightEdgeLottie) {
- haveShownSfpsRightEdgeLottie = true
- configureEnrollmentStage("", R.raw.sfps_lottie_right_edge)
- }
- }
-
- STAGE_UNKNOWN -> {
- // Don't use BiometricEnrollBase#setHeaderText, since that invokes setTitle,
- // which gets announced for a11y upon entering the page. For SFPS, we want to
- // announce a different string for a11y upon entering the page.
- helper.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title)
- helper.setDescriptionText(
- getString(R.string.security_settings_sfps_enroll_start_message)
- )
- val description: CharSequence = getString(
- R.string.security_settings_sfps_enroll_find_sensor_message
- )
- helper.glifLayout.headerTextView.contentDescription = description
- helper.activity.title = description
- }
-
- else -> {
- helper.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title)
- helper.setDescriptionText(
- getString(R.string.security_settings_sfps_enroll_start_message)
- )
- val description: CharSequence = getString(
- R.string.security_settings_sfps_enroll_find_sensor_message
- )
- helper.glifLayout.headerTextView.contentDescription = description
- helper.activity.title = description
- }
- }
- }
-
- private fun showIconTouchDialog() {
- iconTouchCount = 0
- enrollingViewModel.showIconTouchDialog()
- }
-
- companion object {
- private val TAG = FingerprintEnrollEnrollingSfpsFragment::class.java.simpleName
- private const val DEBUG = false
- private const val PROGRESS_BAR_MAX = 10000
- private const val HELP_ANIMATION_DURATION = 550L
- private const val HELP_ANIMATION_TRANSLATION_X = 40f
- private const val PROGRESS_ANIMATION_DURATION = 250L
- private const val ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN: Long = 500
- private const val ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN = 3
- private const val STAGE_UNKNOWN = -1
- private const val SFPS_STAGE_NO_ANIMATION = 0
- private const val SFPS_STAGE_CENTER = 1
- private const val SFPS_STAGE_FINGERTIP = 2
- private const val SFPS_STAGE_LEFT_EDGE = 3
- private const val SFPS_STAGE_RIGHT_EDGE = 4
- }
-}
-
-fun FragmentActivity.bindFingerprintEnrollEnrollingSfpsView(
- view: GlifLayout,
- onSkipClickListener: View.OnClickListener
-) {
- GlifLayoutHelper(this, view).setDescriptionText(
- getString(R.string.security_settings_fingerprint_enroll_start_message)
- )
-
- view.getMixin(FooterBarMixin::class.java).secondaryButton = FooterButton.Builder(this)
- .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
- .setListener(onSkipClickListener)
- .setButtonType(FooterButton.ButtonType.SKIP)
- .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
- .build()
-
- view.findViewById<ProgressBar>(R.id.fingerprint_progress_bar)!!.progressBackgroundTintMode =
- PorterDuff.Mode.SRC
-
- view.findViewById<ProgressBar>(R.id.fingerprint_progress_bar)!!
- .applyProgressBarDynamicColor(this, false)
-
- view.findViewById<LottieAnimationView>(R.id.illustration_lottie)!!
- .applyLottieDynamicColor(this, false)
-
- view.maybeHideSfpsText(resources.configuration.orientation)
-}
-
-private fun ProgressBar.applyProgressBarDynamicColor(context: Context, isError: Boolean) {
- progressTintList = ColorStateList.valueOf(
- context.getColor(
- if (isError)
- R.color.sfps_enrollment_progress_bar_error_color
- else
- R.color.sfps_enrollment_progress_bar_fill_color
- )
- )
- progressTintMode = PorterDuff.Mode.SRC
- invalidate()
-}
-
-fun LottieAnimationView.applyLottieDynamicColor(context: Context, isError: Boolean) {
- addValueCallback(
- KeyPath(".blue100", "**"),
- LottieProperty.COLOR_FILTER
- ) {
- PorterDuffColorFilter(
- context.getColor(
- if (isError)
- R.color.sfps_enrollment_fp_error_color
- else
- R.color.sfps_enrollment_fp_captured_color
- ),
- PorterDuff.Mode.SRC_ATOP
- )
- }
- invalidate()
-}
-
-fun GlifLayout.maybeHideSfpsText(@Configuration.Orientation orientation: Int) {
- val headerMixin: HeaderMixin = getMixin(HeaderMixin::class.java)
- val descriptionMixin: DescriptionMixin = getMixin(DescriptionMixin::class.java)
-
- val isLandscape = (orientation == Configuration.ORIENTATION_LANDSCAPE)
- headerMixin.setAutoTextSizeEnabled(isLandscape)
- if (isLandscape) {
- headerMixin.textView.minLines = 0
- headerMixin.textView.maxLines = 10
- descriptionMixin.textView.minLines = 0
- descriptionMixin.textView.maxLines = 10
- } else {
- headerMixin.textView.setLines(4)
- // hide the description
- descriptionMixin.textView.setLines(0)
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.kt
deleted file mode 100644
index 7e754ac..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.kt
+++ /dev/null
@@ -1,707 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.annotation.RawRes
-import android.content.Context
-import android.hardware.biometrics.BiometricFingerprintConstants
-import android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
-import android.os.Bundle
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.Surface
-import android.view.Surface.ROTATION_270
-import android.view.Surface.ROTATION_90
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Button
-import android.widget.ImageView
-import android.widget.RelativeLayout
-import android.widget.TextView
-import androidx.activity.OnBackPressedCallback
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.MutableLiveData
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.airbnb.lottie.LottieAnimationView
-import com.airbnb.lottie.LottieComposition
-import com.airbnb.lottie.LottieCompositionFactory
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.android.settings.biometrics2.ui.widget.UdfpsEnrollView
-import com.android.settingslib.display.DisplayDensityUtils
-import kotlinx.coroutines.launch
-import kotlin.math.roundToInt
-
-/**
- * Fragment is used to handle enrolling process for udfps
- */
-class FingerprintEnrollEnrollingUdfpsFragment : Fragment() {
-
- private var _enrollingViewModel: FingerprintEnrollEnrollingViewModel? = null
- private val enrollingViewModel: FingerprintEnrollEnrollingViewModel
- get() = _enrollingViewModel!!
-
- private var _rotationViewModel: DeviceRotationViewModel? = null
- private val rotationViewModel: DeviceRotationViewModel
- get() = _rotationViewModel!!
-
- private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
- private val progressViewModel: FingerprintEnrollProgressViewModel
- get() = _progressViewModel!!
-
- private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
- private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
- get() = _errorDialogViewModel!!
-
- private var illustrationLottie: LottieAnimationView? = null
-
- private var haveShownTipLottie = false
- private var haveShownLeftEdgeLottie = false
- private var haveShownRightEdgeLottie = false
- private var haveShownCenterLottie = false
- private var haveShownGuideLottie = false
-
- private var enrollingView: RelativeLayout? = null
-
- private val titleText: TextView
- get() = enrollingView!!.findViewById(R.id.suc_layout_title)!!
-
- private val subTitleText: TextView
- get() = enrollingView!!.findViewById(R.id.sud_layout_subtitle)!!
-
- private val udfpsEnrollView: UdfpsEnrollView
- get() = enrollingView!!.findViewById(R.id.udfps_animation_view)!!
-
- private val skipBtn: Button
- get() = enrollingView!!.findViewById(R.id.skip_btn)!!
-
- private val icon: ImageView
- get() = enrollingView!!.findViewById(R.id.sud_layout_icon)!!
-
- private val shouldShowLottie: Boolean
- get() {
- val displayDensity = DisplayDensityUtils(requireContext())
- val currentDensityIndex: Int = displayDensity.currentIndexForDefaultDisplay
- val currentDensity: Int =
- displayDensity.defaultDisplayDensityValues[currentDensityIndex]
- val defaultDensity: Int = displayDensity.defaultDensityForDefaultDisplay
- return defaultDensity == currentDensity
- }
-
- private val isAccessibilityEnabled
- get() = enrollingViewModel.isAccessibilityEnabled
-
- private var rotation = -1
-
- private var enrollingCancelSignal: Any? = null
-
- private val onSkipClickListener = View.OnClickListener { _: View? ->
- enrollingViewModel.setOnSkipPressed()
- cancelEnrollment(true) // TODO Add test after b/273640000 fixed
- }
-
- private val progressObserver = Observer { progress: EnrollmentProgress? ->
- if (progress != null && progress.steps >= 0) {
- onEnrollmentProgressChange(progress)
- }
- }
-
- private val helpMessageObserver = Observer { helpMessage: EnrollmentStatusMessage? ->
- Log.d(TAG, "helpMessageObserver($helpMessage)")
- helpMessage?.let { onEnrollmentHelp(it) }
- }
-
- private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
- Log.d(TAG, "errorMessageObserver($errorMessage)")
- errorMessage?.let { onEnrollmentError(it) }
- }
-
- private val canceledSignalObserver = Observer { canceledSignal: Any? ->
- Log.d(TAG, "canceledSignalObserver($canceledSignal)")
- canceledSignal?.let { onEnrollmentCanceled(it) }
- }
-
- private val acquireObserver =
- Observer { isAcquiredGood: Boolean? -> isAcquiredGood?.let { onAcquired(it) } }
-
- private val pointerDownObserver =
- Observer { sensorId: Int? -> sensorId?.let { onPointerDown(it) } }
-
- private val pointerUpObserver =
- Observer { sensorId: Int? -> sensorId?.let { onPointerUp(it) } }
-
- private val rotationObserver =
- Observer { rotation: Int? -> rotation?.let { onRotationChanged(it) } }
-
- private val onBackPressedCallback: OnBackPressedCallback =
- object : OnBackPressedCallback(true) {
- override fun handleOnBackPressed() {
- isEnabled = false
- enrollingViewModel.setOnBackPressed()
- cancelEnrollment(true)
- }
- }
-
- // Give the user a chance to see progress completed before jumping to the next stage.
- private val delayedFinishRunnable = Runnable { enrollingViewModel.onEnrollingDone() }
-
- override fun onAttach(context: Context) {
- ViewModelProvider(requireActivity()).let { provider ->
- _enrollingViewModel = provider[FingerprintEnrollEnrollingViewModel::class.java]
- _rotationViewModel = provider[DeviceRotationViewModel::class.java]
- _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
- _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
- }
- super.onAttach(context)
- requireActivity().onBackPressedDispatcher.addCallback(onBackPressedCallback)
- }
-
- override fun onDetach() {
- onBackPressedCallback.isEnabled = false
- super.onDetach()
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View = (inflater.inflate(
- R.layout.udfps_enroll_enrolling_v2, container, false
- ) as RelativeLayout).also {
- enrollingView = it
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- rotation = rotationViewModel.liveData.value!!
- updateIllustrationLottie(rotation)
-
- requireActivity().bindFingerprintEnrollEnrollingUdfpsView(
- view = enrollingView!!,
- sensorProperties = enrollingViewModel.firstFingerprintSensorPropertiesInternal!!,
- rotation = rotation,
- onSkipClickListener = onSkipClickListener,
- )
-
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- errorDialogViewModel.triggerRetryFlow.collect { retryEnrollment() }
- }
- }
- }
-
- private fun retryEnrollment() {
- reattachUdfpsEnrollView()
-
- startEnrollment()
-
- updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
- progressViewModel.helpMessageLiveData.value.let {
- if (it != null) {
- onEnrollmentHelp(it)
- } else {
- updateTitleAndDescription()
- }
- }
- }
-
- override fun onStart() {
- super.onStart()
- val isEnrolling = progressViewModel.isEnrolling
- val isErrorDialogShown = errorDialogViewModel.isDialogShown
- Log.d(TAG, "onStart(), isEnrolling:$isEnrolling, isErrorDialog:$isErrorDialogShown")
- if (!isErrorDialogShown) {
- startEnrollment()
- }
-
- updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
- progressViewModel.helpMessageLiveData.value.let {
- if (it != null) {
- onEnrollmentHelp(it)
- } else {
- updateTitleAndDescription()
- }
- }
- }
-
- private fun reattachUdfpsEnrollView() {
- enrollingView!!.let {
- val newUdfpsView = LayoutInflater.from(requireActivity()).inflate(
- R.layout.udfps_enroll_enrolling_v2_udfps_view,
- null
- )
- val index = it.indexOfChild(udfpsEnrollView)
- val lp = udfpsEnrollView.layoutParams
-
- it.removeView(udfpsEnrollView)
- it.addView(newUdfpsView, index, lp)
- udfpsEnrollView.setSensorProperties(
- enrollingViewModel.firstFingerprintSensorPropertiesInternal
- )
- }
-
- // Clear lottie status
- haveShownTipLottie = false
- haveShownLeftEdgeLottie = false
- haveShownRightEdgeLottie = false
- haveShownCenterLottie = false
- haveShownGuideLottie = false
- illustrationLottie?.let {
- it.contentDescription = ""
- it.visibility = View.GONE
- }
- }
-
- override fun onResume() {
- super.onResume()
- rotationViewModel.liveData.observe(this, rotationObserver)
- }
-
- override fun onPause() {
- rotationViewModel.liveData.removeObserver(rotationObserver)
- super.onPause()
- }
-
- override fun onStop() {
- removeEnrollmentObservers()
- val isEnrolling = progressViewModel.isEnrolling
- val isConfigChange = requireActivity().isChangingConfigurations
- Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
- if (isEnrolling && !isConfigChange) {
- cancelEnrollment(false)
- }
- super.onStop()
- }
-
- private fun removeEnrollmentObservers() {
- progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
- progressViewModel.progressLiveData.removeObserver(progressObserver)
- progressViewModel.helpMessageLiveData.removeObserver(helpMessageObserver)
- progressViewModel.acquireLiveData.removeObserver(acquireObserver)
- progressViewModel.pointerDownLiveData.removeObserver(pointerDownObserver)
- progressViewModel.pointerUpLiveData.removeObserver(pointerUpObserver)
- }
-
- private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
- if (!progressViewModel.isEnrolling) {
- Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
- return
- }
- removeEnrollmentObservers()
- if (waitForLastCancelErrMsg) {
- progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
- } else {
- enrollingCancelSignal = null
- }
- val cancelResult: Boolean = progressViewModel.cancelEnrollment()
- if (!cancelResult) {
- Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
- }
- }
-
- private fun startEnrollment() {
- enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_ENROLL)
- if (enrollingCancelSignal == null) {
- Log.e(TAG, "startEnrollment(), failed")
- } else {
- Log.d(TAG, "startEnrollment(), success")
- }
- progressViewModel.progressLiveData.observe(this, progressObserver)
- progressViewModel.helpMessageLiveData.observe(this, helpMessageObserver)
- progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
- progressViewModel.acquireLiveData.observe(this, acquireObserver)
- progressViewModel.pointerDownLiveData.observe(this, pointerDownObserver)
- progressViewModel.pointerUpLiveData.observe(this, pointerUpObserver)
- }
-
- private fun updateProgress(animate: Boolean, enrollmentProgress: EnrollmentProgress) {
- if (!progressViewModel.isEnrolling) {
- Log.d(TAG, "Enrollment not started yet")
- return
- }
-
- val progress = getProgress(enrollmentProgress)
- Log.d(TAG, "updateProgress($animate, $enrollmentProgress), progress:$progress")
-
- if (enrollmentProgress.steps != -1) {
- udfpsEnrollView.onEnrollmentProgress(
- enrollmentProgress.remaining,
- enrollmentProgress.steps
- )
- }
-
- if (progress >= PROGRESS_BAR_MAX) {
- if (animate) {
- // Wait animations to finish, then proceed to next page
- activity!!.mainThreadHandler.postDelayed(delayedFinishRunnable, 400L)
- } else {
- delayedFinishRunnable.run()
- }
- }
- }
-
- private fun getProgress(progress: EnrollmentProgress): Int {
- if (progress.steps == -1) {
- return 0
- }
- val displayProgress = 0.coerceAtLeast(progress.steps + 1 - progress.remaining)
- return PROGRESS_BAR_MAX * displayProgress / (progress.steps + 1)
- }
-
- private fun updateTitleAndDescription() {
- Log.d(TAG, "updateTitleAndDescription($currentStage)")
- when (currentStage) {
- STAGE_CENTER -> {
- titleText.setText(R.string.security_settings_fingerprint_enroll_repeat_title)
- if (isAccessibilityEnabled || illustrationLottie == null) {
- subTitleText.setText(R.string.security_settings_udfps_enroll_start_message)
- } else if (!haveShownCenterLottie) {
- haveShownCenterLottie = true
- // Note: Update string reference when differentiate in between udfps & sfps
- illustrationLottie!!.contentDescription = getString(R.string.security_settings_sfps_enroll_finger_center_title)
- configureEnrollmentStage(R.raw.udfps_center_hint_lottie)
- }
- }
-
- STAGE_GUIDED -> {
- titleText.setText(R.string.security_settings_fingerprint_enroll_repeat_title)
- if (isAccessibilityEnabled || illustrationLottie == null) {
- subTitleText.setText(
- R.string.security_settings_udfps_enroll_repeat_a11y_message
- )
- } else if (!haveShownGuideLottie) {
- haveShownGuideLottie = true
- illustrationLottie!!.contentDescription =
- getString(R.string.security_settings_fingerprint_enroll_repeat_message)
- // TODO(b/228100413) Could customize guided lottie animation
- configureEnrollmentStage(R.raw.udfps_center_hint_lottie)
- }
- }
-
- STAGE_FINGERTIP -> {
- titleText.setText(R.string.security_settings_udfps_enroll_fingertip_title)
- if (!haveShownTipLottie && illustrationLottie != null) {
- haveShownTipLottie = true
- illustrationLottie!!.contentDescription =
- getString(R.string.security_settings_udfps_tip_fingerprint_help)
- configureEnrollmentStage(R.raw.udfps_tip_hint_lottie)
- }
- }
-
- STAGE_LEFT_EDGE -> {
- titleText.setText(R.string.security_settings_udfps_enroll_left_edge_title)
- if (!haveShownLeftEdgeLottie && illustrationLottie != null) {
- haveShownLeftEdgeLottie = true
- illustrationLottie!!.contentDescription =
- getString(R.string.security_settings_udfps_side_fingerprint_help)
- configureEnrollmentStage(R.raw.udfps_left_edge_hint_lottie)
- } else if (illustrationLottie == null) {
- if (isStageHalfCompleted) {
- subTitleText.setText(
- R.string.security_settings_fingerprint_enroll_repeat_message
- )
- } else {
- subTitleText.setText(R.string.security_settings_udfps_enroll_edge_message)
- }
- }
- }
-
- STAGE_RIGHT_EDGE -> {
- titleText.setText(R.string.security_settings_udfps_enroll_right_edge_title)
- if (!haveShownRightEdgeLottie && illustrationLottie != null) {
- haveShownRightEdgeLottie = true
- illustrationLottie!!.contentDescription =
- getString(R.string.security_settings_udfps_side_fingerprint_help)
- configureEnrollmentStage(R.raw.udfps_right_edge_hint_lottie)
- } else if (illustrationLottie == null) {
- if (isStageHalfCompleted) {
- subTitleText.setText(
- R.string.security_settings_fingerprint_enroll_repeat_message
- )
- } else {
- subTitleText.setText(R.string.security_settings_udfps_enroll_edge_message)
- }
- }
- }
-
- STAGE_UNKNOWN -> {
- titleText.setText(R.string.security_settings_fingerprint_enroll_udfps_title)
- subTitleText.setText(R.string.security_settings_udfps_enroll_start_message)
- val description: CharSequence = getString(
- R.string.security_settings_udfps_enroll_a11y
- )
- requireActivity().title = description
- }
-
- else -> {
- titleText.setText(R.string.security_settings_fingerprint_enroll_udfps_title)
- subTitleText.setText(R.string.security_settings_udfps_enroll_start_message)
- val description: CharSequence = getString(
- R.string.security_settings_udfps_enroll_a11y
- )
- requireActivity().title = description
- }
- }
- }
-
- private fun updateIllustrationLottie(@Surface.Rotation rotation: Int) {
- if (rotation == ROTATION_90 || rotation == ROTATION_270) {
- illustrationLottie = null
- } else if (shouldShowLottie) {
- illustrationLottie =
- enrollingView!!.findViewById(R.id.illustration_lottie)
- }
- }
-
- private val currentStage: Int
- get() {
- val progress = progressViewModel.progressLiveData.value!!
- if (progress.steps == -1) {
- return STAGE_UNKNOWN
- }
- val progressSteps: Int = progress.steps - progress.remaining
- return if (progressSteps < getStageThresholdSteps(0)) {
- STAGE_CENTER
- } else if (progressSteps < getStageThresholdSteps(1)) {
- STAGE_GUIDED
- } else if (progressSteps < getStageThresholdSteps(2)) {
- STAGE_FINGERTIP
- } else if (progressSteps < getStageThresholdSteps(3)) {
- STAGE_LEFT_EDGE
- } else {
- STAGE_RIGHT_EDGE
- }
- }
-
- private val isStageHalfCompleted: Boolean
- get() {
- val progress: EnrollmentProgress = progressViewModel.progressLiveData.value!!
- if (progress.steps == -1) {
- return false
- }
- val progressSteps: Int = progress.steps - progress.remaining
- var prevThresholdSteps = 0
- for (i in 0 until enrollingViewModel.getEnrollStageCount()) {
- val thresholdSteps = getStageThresholdSteps(i)
- if (progressSteps in prevThresholdSteps until thresholdSteps) {
- val adjustedProgress = progressSteps - prevThresholdSteps
- val adjustedThreshold = thresholdSteps - prevThresholdSteps
- return adjustedProgress >= adjustedThreshold / 2
- }
- prevThresholdSteps = thresholdSteps
- }
-
- // After last enrollment step.
- return true
- }
-
- private fun getStageThresholdSteps(index: Int): Int {
- val progress: EnrollmentProgress = progressViewModel.progressLiveData.value!!
- if (progress.steps == -1) {
- Log.w(TAG, "getStageThresholdSteps: Enrollment not started yet")
- return 1
- }
- return (progress.steps * enrollingViewModel.getEnrollStageThreshold(index)).roundToInt()
- }
-
- private fun configureEnrollmentStage(@RawRes lottie: Int) {
- subTitleText.text = ""
- LottieCompositionFactory.fromRawRes(activity, lottie)
- .addListener { c: LottieComposition ->
- illustrationLottie?.let {
- it.setComposition(c)
- it.visibility = View.VISIBLE
- it.playAnimation()
- }
- }
- }
-
- private fun onEnrollmentProgressChange(progress: EnrollmentProgress) {
- updateProgress(true /* animate */, progress)
- updateTitleAndDescription()
- if (isAccessibilityEnabled) {
- val steps: Int = progress.steps
- val remaining: Int = progress.remaining
- val percent = ((steps - remaining).toFloat() / steps.toFloat() * 100).toInt()
- val announcement: CharSequence = activity!!.getString(
- R.string.security_settings_udfps_enroll_progress_a11y_message, percent
- )
- enrollingViewModel.sendAccessibilityEvent(announcement)
- }
- }
-
- private fun onEnrollmentHelp(helpMessage: EnrollmentStatusMessage) {
- Log.d(TAG, "onEnrollmentHelp($helpMessage)")
- val helpStr: CharSequence = helpMessage.str
- if (helpStr.isNotEmpty()) {
- showError(helpStr)
- udfpsEnrollView.onEnrollmentHelp()
- }
- }
-
- private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
- cancelEnrollment(true)
- lifecycleScope.launch {
- Log.d(TAG, "newDialog $errorMessage")
- errorDialogViewModel.newDialog(errorMessage.msgId)
- }
- }
-
- private fun onEnrollmentCanceled(canceledSignal: Any) {
- Log.d(
- TAG,
- "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
- )
- if (enrollingCancelSignal === canceledSignal) {
- progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
- progressViewModel.clearProgressLiveData()
- if (enrollingViewModel.onBackPressed) {
- enrollingViewModel.onCancelledDueToOnBackPressed()
- } else if (enrollingViewModel.onSkipPressed) {
- enrollingViewModel.onCancelledDueToOnSkipPressed()
- }
- }
- }
-
- private fun onAcquired(isAcquiredGood: Boolean) {
- udfpsEnrollView.onAcquired(isAcquiredGood)
- }
-
- private fun onPointerDown(sensorId: Int) {
- udfpsEnrollView.onPointerDown(sensorId)
- }
-
- private fun onPointerUp(sensorId: Int) {
- udfpsEnrollView.onPointerUp(sensorId)
- }
-
- private fun showError(error: CharSequence) {
- titleText.text = error
- titleText.contentDescription = error
- subTitleText.contentDescription = ""
- }
-
- private fun onRotationChanged(newRotation: Int) {
- if ((newRotation + 2) % 4 == rotation) {
- rotation = newRotation
- requireContext().configLayout(newRotation, titleText, subTitleText, icon, skipBtn)
- }
- }
-
- companion object {
- private val TAG = "FingerprintEnrollEnrollingUdfpsFragment"
- private const val PROGRESS_BAR_MAX = 10000
- private const val STAGE_UNKNOWN = -1
- private const val STAGE_CENTER = 0
- private const val STAGE_GUIDED = 1
- private const val STAGE_FINGERTIP = 2
- private const val STAGE_LEFT_EDGE = 3
- private const val STAGE_RIGHT_EDGE = 4
- }
-}
-
-
-fun FragmentActivity.bindFingerprintEnrollEnrollingUdfpsView(
- view: RelativeLayout,
- sensorProperties: FingerprintSensorPropertiesInternal,
- @Surface.Rotation rotation: Int,
- onSkipClickListener: View.OnClickListener
-) {
- view.findViewById<UdfpsEnrollView>(R.id.udfps_animation_view)!!.setSensorProperties(
- sensorProperties
- )
-
- val titleText = view.findViewById<TextView>(R.id.suc_layout_title)!!
- val subTitleText = view.findViewById<TextView>(R.id.sud_layout_subtitle)!!
- val icon = view.findViewById<ImageView>(R.id.sud_layout_icon)!!
- val skipBtn = view.findViewById<Button>(R.id.skip_btn)!!.also {
- it.setOnClickListener(onSkipClickListener)
- }
- configLayout(rotation, titleText, subTitleText, icon, skipBtn)
-}
-
-private fun Context.configLayout(
- @Surface.Rotation newRotation: Int,
- titleText: TextView,
- subTitleText: TextView,
- icon: ImageView,
- skipBtn: Button
-) {
- if (newRotation == ROTATION_270) {
- val iconLP = RelativeLayout.LayoutParams(-2, -2)
- iconLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
- iconLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view)
- iconLP.topMargin = convertDpToPixel(76.64f)
- iconLP.leftMargin = convertDpToPixel(151.54f)
- icon.layoutParams = iconLP
- val titleLP = RelativeLayout.LayoutParams(-1, -2)
- titleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
- titleLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view)
- titleLP.topMargin = convertDpToPixel(138f)
- titleLP.leftMargin = convertDpToPixel(144f)
- titleText.layoutParams = titleLP
- val subtitleLP = RelativeLayout.LayoutParams(-1, -2)
- subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
- subtitleLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view)
- subtitleLP.topMargin = convertDpToPixel(198f)
- subtitleLP.leftMargin = convertDpToPixel(144f)
- subTitleText.layoutParams = subtitleLP
- } else if (newRotation == ROTATION_90) {
- val metrics = resources.displayMetrics
- val iconLP = RelativeLayout.LayoutParams(-2, -2)
- iconLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
- iconLP.addRule(RelativeLayout.ALIGN_PARENT_START)
- iconLP.topMargin = convertDpToPixel(76.64f)
- iconLP.leftMargin = convertDpToPixel(71.99f)
- icon.layoutParams = iconLP
- val titleLP = RelativeLayout.LayoutParams(
- metrics.widthPixels / 2, -2
- )
- titleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
- titleLP.addRule(RelativeLayout.ALIGN_PARENT_START, R.id.udfps_animation_view)
- titleLP.topMargin = convertDpToPixel(138f)
- titleLP.leftMargin = convertDpToPixel(66f)
- titleText.layoutParams = titleLP
- val subtitleLP = RelativeLayout.LayoutParams(
- metrics.widthPixels / 2, -2
- )
- subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
- subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_START)
- subtitleLP.topMargin = convertDpToPixel(198f)
- subtitleLP.leftMargin = convertDpToPixel(66f)
- subTitleText.layoutParams = subtitleLP
- }
- if (newRotation == ROTATION_90 || newRotation == ROTATION_270) {
- val skipBtnLP = skipBtn.layoutParams as RelativeLayout.LayoutParams
- skipBtnLP.topMargin = convertDpToPixel(26f)
- skipBtnLP.leftMargin = convertDpToPixel(54f)
- skipBtn.requestLayout()
- }
-}
-
-fun Context.convertDpToPixel(dp: Float): Int {
- return (dp * resources.displayMetrics.density).toInt()
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollErrorDialog.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollErrorDialog.kt
deleted file mode 100644
index 882cbcf..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollErrorDialog.kt
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.app.Dialog
-import android.content.Context
-import android.content.DialogInterface
-import android.hardware.biometrics.BiometricConstants
-import android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_UNABLE_TO_PROCESS
-import android.hardware.fingerprint.FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE
-import android.os.Bundle
-import android.util.Log
-import androidx.appcompat.app.AlertDialog
-import androidx.fragment.app.DialogFragment
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import com.android.settings.R
-import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog.getErrorMessage
-import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog.getErrorTitle
-import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog.getSetupErrorMessage
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
-import kotlinx.coroutines.launch
-
-/**
- * Fingerprint error dialog, will be shown when an error occurs during fingerprint enrollment.
- */
-class FingerprintEnrollErrorDialog : DialogFragment() {
-
- private val viewModel: FingerprintEnrollErrorDialogViewModel?
- get() = activity?.let {
- ViewModelProvider(it)[FingerprintEnrollErrorDialogViewModel::class.java]
- }
-
- override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
- val errorMsgId: Int = requireArguments().getInt(KEY_ERROR_MSG_ID)
- val okButtonSetResultAction =
- if (errorMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT)
- FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
- else
- FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
- return requireActivity().bindFingerprintEnrollEnrollingErrorDialog(
- errorMsgId = errorMsgId,
- isSuw = viewModel!!.isSuw,
- tryAgainButtonClickListener = { dialog: DialogInterface?, _: Int ->
- activity?.lifecycleScope?.launch {
- Log.d(TAG, "tryAgain flow")
- viewModel?.triggerRetry()
- dialog?.dismiss()
- }
- },
- okButtonClickListener = { dialog: DialogInterface?, _: Int ->
- activity?.lifecycleScope?.launch {
- Log.d(TAG, "ok flow as $okButtonSetResultAction")
- viewModel?.setResultAndFinish(okButtonSetResultAction)
- dialog?.dismiss()
- }
- }
- )
- }
-
- companion object {
- private const val TAG = "FingerprintEnrollErrorDialog"
- private const val KEY_ERROR_MSG_ID = "error_msg_id"
-
- fun newInstance(errorMsgId: Int): FingerprintEnrollErrorDialog {
- val dialog = FingerprintEnrollErrorDialog()
- val args = Bundle()
- args.putInt(KEY_ERROR_MSG_ID, errorMsgId)
- dialog.arguments = args
- return dialog
- }
- }
-}
-
-fun Context.bindFingerprintEnrollEnrollingErrorDialog(
- errorMsgId: Int,
- isSuw: Boolean,
- tryAgainButtonClickListener: DialogInterface.OnClickListener,
- okButtonClickListener: DialogInterface.OnClickListener
-): AlertDialog = AlertDialog.Builder(this)
- .setTitle(getString(getErrorTitle(errorMsgId)))
- .setMessage(
- getString(
- if (isSuw)
- getSetupErrorMessage(errorMsgId)
- else
- getErrorMessage(errorMsgId)
- )
- )
- .setCancelable(false).apply {
- if (errorMsgId == FINGERPRINT_ERROR_UNABLE_TO_PROCESS) {
- setPositiveButton(
- R.string.security_settings_fingerprint_enroll_dialog_try_again,
- tryAgainButtonClickListener
- )
- setNegativeButton(
- R.string.security_settings_fingerprint_enroll_dialog_ok,
- okButtonClickListener
- )
- } else {
- setPositiveButton(
- R.string.security_settings_fingerprint_enroll_dialog_ok,
- okButtonClickListener
- )
- }
- }
- .create()
- .apply { setCanceledOnTouchOutside(false) }
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.kt
deleted file mode 100644
index be24fc6..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.kt
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.content.Context
-import android.hardware.fingerprint.FingerprintManager.ENROLL_FIND_SENSOR
-import android.os.Bundle
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.Surface
-import android.view.View
-import android.view.ViewGroup
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.android.settings.R
-import com.android.settings.biometrics.fingerprint.FingerprintFindSensorAnimation
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-import kotlinx.coroutines.launch
-
-/**
- * Fragment explaining the side fingerprint sensor location for fingerprint enrollment.
- * It interacts with ProgressViewModel, and FingerprintFindSensorAnimation.
- * <pre>
- * | Has | UDFPS | SFPS | Other (Rear FPS) |
- * |---------------------|-------|------|------------------|
- * | Primary button | Yes | No | No |
- * | Illustration Lottie | Yes | Yes | No |
- * | Animation | No | No | Depend on layout |
- * | Progress ViewModel | No | Yes | Yes |
- * | Orientation detect | No | Yes | No |
- * | Foldable detect | No | Yes | No |
- * </pre>
- */
-class FingerprintEnrollFindRfpsFragment : Fragment() {
-
- private var _viewModel: FingerprintEnrollFindSensorViewModel? = null
- private val viewModel: FingerprintEnrollFindSensorViewModel
- get() = _viewModel!!
-
- private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
- private val progressViewModel: FingerprintEnrollProgressViewModel
- get() = _progressViewModel!!
-
- private var _rotationViewModel: DeviceRotationViewModel? = null
- private val rotationViewModel: DeviceRotationViewModel
- get() = _rotationViewModel!!
-
- private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
- private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
- get() = _errorDialogViewModel!!
-
- private var findRfpsView: GlifLayout? = null
-
- private val onSkipClickListener =
- View.OnClickListener { _: View? -> viewModel.onSkipButtonClick() }
-
- private var animation: FingerprintFindSensorAnimation? = null
-
- private var enrollingCancelSignal: Any? = null
-
- @Surface.Rotation
- private var lastRotation = -1
-
- private val progressObserver = Observer { progress: EnrollmentProgress? ->
- if (progress != null && !progress.isInitialStep) {
- cancelEnrollment(true)
- }
- }
-
- private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
- Log.d(TAG, "errorMessageObserver($errorMessage)")
- errorMessage?.let { onEnrollmentError(it) }
- }
-
- private val canceledSignalObserver = Observer { canceledSignal: Any? ->
- canceledSignal?.let { onEnrollmentCanceled(it) }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View {
- findRfpsView = inflater.inflate(
- R.layout.fingerprint_enroll_find_sensor,
- container,
- false
- ) as GlifLayout
-
- val animationView = findRfpsView!!.findViewById<View>(
- R.id.fingerprint_sensor_location_animation
- )
- if (animationView is FingerprintFindSensorAnimation) {
- animation = animationView
- }
-
- return findRfpsView!!
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- requireActivity().bindFingerprintEnrollFindRfpsView(
- view = findRfpsView!!,
- onSkipClickListener = onSkipClickListener
- )
-
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- errorDialogViewModel.triggerRetryFlow.collect { retryLookingForFingerprint() }
- }
- }
- }
-
- private fun retryLookingForFingerprint() {
- startEnrollment()
- animation?.let {
- Log.d(TAG, "retry, start animation")
- it.startAnimation()
- }
- }
-
- override fun onStart() {
- super.onStart()
- val isErrorDialogShown = errorDialogViewModel.isDialogShown
- Log.d(TAG, "onStart(), isEnrolling:${progressViewModel.isEnrolling}"
- + ", isErrorDialog:$isErrorDialogShown")
- if (!isErrorDialogShown) {
- startEnrollment()
- }
- }
-
- override fun onResume() {
- val rotationLiveData: LiveData<Int> = rotationViewModel.liveData
- lastRotation = rotationLiveData.value!!
- if (!errorDialogViewModel.isDialogShown) {
- animation?.let {
- Log.d(TAG, "onResume(), start animation")
- it.startAnimation()
- }
- }
- super.onResume()
- }
-
- override fun onPause() {
- animation?.let {
- if (DEBUG) {
- Log.d(TAG, "onPause(), pause animation")
- }
- it.pauseAnimation()
- }
- super.onPause()
- }
-
- override fun onStop() {
- super.onStop()
- removeEnrollmentObservers()
- val isEnrolling = progressViewModel.isEnrolling
- val isConfigChange = requireActivity().isChangingConfigurations
- Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
- if (isEnrolling && !isConfigChange) {
- cancelEnrollment(false)
- }
- }
-
- private fun removeEnrollmentObservers() {
- progressViewModel.progressLiveData.removeObserver(progressObserver)
- progressViewModel.helpMessageLiveData.removeObserver(errorMessageObserver)
- }
-
- private fun startEnrollment() {
- enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_FIND_SENSOR)
- if (enrollingCancelSignal == null) {
- Log.e(TAG, "startEnrollment(), failed to start enrollment")
- } else {
- Log.d(TAG, "startEnrollment(), success")
- }
- progressViewModel.progressLiveData.observe(this, progressObserver)
- progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
- }
-
- private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
- if (!progressViewModel.isEnrolling) {
- Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
- return
- }
- removeEnrollmentObservers()
- if (waitForLastCancelErrMsg) {
- progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
- } else {
- enrollingCancelSignal = null
- }
- val cancelResult: Boolean = progressViewModel.cancelEnrollment()
- if (!cancelResult) {
- Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
- }
- }
-
- private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
- cancelEnrollment(false)
- lifecycleScope.launch {
- Log.d(TAG, "newDialogFlow as $errorMessage")
- errorDialogViewModel.newDialog(errorMessage.msgId)
- }
- }
-
- private fun onEnrollmentCanceled(canceledSignal: Any) {
- Log.d(
- TAG,
- "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
- )
- if (enrollingCancelSignal === canceledSignal) {
- val progress: EnrollmentProgress? = progressViewModel.progressLiveData.value
- progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
- progressViewModel.clearProgressLiveData()
- if (progress != null && !progress.isInitialStep) {
- viewModel.onStartButtonClick()
- }
- }
- }
-
- override fun onDestroy() {
- animation?.let {
- if (DEBUG) {
- Log.d(TAG, "onDestroy(), stop animation")
- }
- it.stopAnimation()
- }
- super.onDestroy()
- }
-
- override fun onAttach(context: Context) {
- ViewModelProvider(requireActivity()).let { provider ->
- _viewModel = provider[FingerprintEnrollFindSensorViewModel::class.java]
- _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
- _rotationViewModel = provider[DeviceRotationViewModel::class.java]
- _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
- }
- super.onAttach(context)
- }
-
- companion object {
- private const val DEBUG = false
- private const val TAG = "FingerprintEnrollFindRfpsFragment"
- }
-}
-
-fun FragmentActivity.bindFingerprintEnrollFindRfpsView(
- view: GlifLayout,
- onSkipClickListener: View.OnClickListener,
-) {
- GlifLayoutHelper(this, view).let {
- it.setHeaderText(
- R.string.security_settings_fingerprint_enroll_find_sensor_title
- )
- it.setDescriptionText(
- getText(R.string.security_settings_fingerprint_enroll_find_sensor_message)
- )
- }
-
- view.getMixin(FooterBarMixin::class.java).secondaryButton =
- FooterButton.Builder(this)
- .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
- .setButtonType(FooterButton.ButtonType.SKIP)
- .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
- .build()
- .also {
- it.setOnClickListener(onSkipClickListener)
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.kt
deleted file mode 100644
index 7455be1..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.kt
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.content.Context
-import android.hardware.fingerprint.FingerprintManager.ENROLL_FIND_SENSOR
-import android.os.Bundle
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.Surface
-import android.view.View
-import android.view.ViewGroup
-import androidx.annotation.RawRes
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.airbnb.lottie.LottieAnimationView
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
-import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.android.settingslib.widget.LottieColorUtils
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-import kotlinx.coroutines.launch
-
-/**
- * Fragment explaining the side fingerprint sensor location for fingerprint enrollment.
- * It interacts with ProgressViewModel, FoldCallback (for different lottie), and
- * LottieAnimationView.
- * <pre>
- * | Has | UDFPS | SFPS | Other (Rear FPS) |
- * |---------------------|-------|------|------------------|
- * | Primary button | Yes | No | No |
- * | Illustration Lottie | Yes | Yes | No |
- * | Animation | No | No | Depend on layout |
- * | Progress ViewModel | No | Yes | Yes |
- * | Orientation detect | No | Yes | No |
- * | Foldable detect | No | Yes | No |
- * </pre>
- */
-class FingerprintEnrollFindSfpsFragment : Fragment() {
-
- private var _viewModel: FingerprintEnrollFindSensorViewModel? = null
- private val viewModel: FingerprintEnrollFindSensorViewModel
- get() = _viewModel!!
-
- private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
- private val progressViewModel: FingerprintEnrollProgressViewModel
- get() = _progressViewModel!!
-
- private var _rotationViewModel: DeviceRotationViewModel? = null
- private val rotationViewModel: DeviceRotationViewModel
- get() = _rotationViewModel!!
-
- private var _foldedViewModel: DeviceFoldedViewModel? = null
- private val foldedViewModel: DeviceFoldedViewModel
- get() = _foldedViewModel!!
-
- private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
- private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
- get() = _errorDialogViewModel!!
-
- private var findSfpsView: GlifLayout? = null
-
- private val onSkipClickListener =
- View.OnClickListener { _: View? -> viewModel.onSkipButtonClick() }
-
- private val illustrationLottie: LottieAnimationView
- get() = findSfpsView!!.findViewById(R.id.illustration_lottie)!!
-
- private var enrollingCancelSignal: Any? = null
-
- @Surface.Rotation
- private var animationRotation = -1
-
- private val rotationObserver = Observer { rotation: Int? ->
- rotation?.let { onRotationChanged(it) }
- }
-
- private val progressObserver = Observer { progress: EnrollmentProgress? ->
- if (progress != null && !progress.isInitialStep) {
- cancelEnrollment(true)
- }
- }
-
- private val errorMessageObserver = Observer{ errorMessage: EnrollmentStatusMessage? ->
- Log.d(TAG, "errorMessageObserver($errorMessage)")
- errorMessage?.let { onEnrollmentError(it) }
- }
-
- private val canceledSignalObserver = Observer { canceledSignal: Any? ->
- canceledSignal?.let { onEnrollmentCanceled(it) }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View = (inflater.inflate(
- R.layout.sfps_enroll_find_sensor_layout,
- container,
- false
- ) as GlifLayout).also {
- findSfpsView = it
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- requireActivity().bindFingerprintEnrollFindSfpsView(
- view = findSfpsView!!,
- onSkipClickListener = onSkipClickListener
- )
-
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- errorDialogViewModel.triggerRetryFlow.collect { startEnrollment() }
- }
- }
- }
-
- override fun onStart() {
- super.onStart()
- val isErrorDialogShown = errorDialogViewModel.isDialogShown
- Log.d(TAG, "onStart(), isEnrolling:${progressViewModel.isEnrolling}"
- + ", isErrorDialog:$isErrorDialogShown")
- if (!isErrorDialogShown) {
- startEnrollment()
- }
- }
-
- override fun onResume() {
- super.onResume()
- val rotationLiveData: LiveData<Int> = rotationViewModel.liveData
- playLottieAnimation(rotationLiveData.value!!)
- rotationLiveData.observe(this, rotationObserver)
- }
-
- override fun onPause() {
- rotationViewModel.liveData.removeObserver(rotationObserver)
- super.onPause()
- }
-
- override fun onStop() {
- super.onStop()
- val isEnrolling = progressViewModel.isEnrolling
- val isConfigChange = requireActivity().isChangingConfigurations
- Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
- if (isEnrolling && !isConfigChange) {
- cancelEnrollment(false)
- }
- }
-
- private fun removeEnrollmentObservers() {
- progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
- progressViewModel.progressLiveData.removeObserver(progressObserver)
- }
-
- private fun startEnrollment() {
- enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_FIND_SENSOR)
- if (enrollingCancelSignal == null) {
- Log.e(TAG, "startEnrollment(), failed to start enrollment")
- } else {
- Log.d(TAG, "startEnrollment(), success")
- }
- progressViewModel.progressLiveData.observe(this, progressObserver)
- progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
- }
-
- private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
- if (!progressViewModel.isEnrolling) {
- Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
- return
- }
- removeEnrollmentObservers()
- if (waitForLastCancelErrMsg) {
- progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
- } else {
- enrollingCancelSignal = null
- }
- val cancelResult: Boolean = progressViewModel.cancelEnrollment()
- if (!cancelResult) {
- Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
- }
- }
-
- private fun onRotationChanged(@Surface.Rotation newRotation: Int) {
- if (DEBUG) {
- Log.d(TAG, "onRotationChanged() from $animationRotation to $newRotation")
- }
- if ((newRotation + 2) % 4 == animationRotation) {
- // Fragment not changed, we just need to play correct rotation animation
- playLottieAnimation(newRotation)
- }
- }
-
- private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
- progressViewModel.cancelEnrollment()
- lifecycleScope.launch {
- Log.d(TAG, "newDialogFlow as $errorMessage")
- errorDialogViewModel.newDialog(errorMessage.msgId)
- }
- }
-
- private fun onEnrollmentCanceled(canceledSignal: Any) {
- Log.d(
- TAG,
- "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
- )
- if (enrollingCancelSignal === canceledSignal) {
- val progress: EnrollmentProgress? = progressViewModel.progressLiveData.value
- progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
- progressViewModel.clearProgressLiveData()
- if (progress != null && !progress.isInitialStep) {
- viewModel.onStartButtonClick()
- }
- }
- }
-
- private fun playLottieAnimation(@Surface.Rotation rotation: Int) {
- @RawRes val animationRawRes = getSfpsLottieAnimationRawRes(rotation)
- Log.d(
- TAG,
- "play lottie animation $animationRawRes, previous rotation:$animationRotation"
- + ", new rotation:" + rotation
- )
- animationRotation = rotation
- illustrationLottie.setAnimation(animationRawRes)
- LottieColorUtils.applyDynamicColors(activity, illustrationLottie)
- illustrationLottie.visibility = View.VISIBLE
- illustrationLottie.playAnimation()
- }
-
- @RawRes
- private fun getSfpsLottieAnimationRawRes(@Surface.Rotation rotation: Int): Int {
- val isFolded = java.lang.Boolean.FALSE != foldedViewModel.liveData.value
- return when (rotation) {
- Surface.ROTATION_90 ->
- if (isFolded)
- R.raw.fingerprint_edu_lottie_folded_top_left
- else
- R.raw.fingerprint_edu_lottie_portrait_top_left
- Surface.ROTATION_180 ->
- if (isFolded)
- R.raw.fingerprint_edu_lottie_folded_bottom_left
- else
- R.raw.fingerprint_edu_lottie_landscape_bottom_left
- Surface.ROTATION_270 ->
- if (isFolded)
- R.raw.fingerprint_edu_lottie_folded_bottom_right
- else
- R.raw.fingerprint_edu_lottie_portrait_bottom_right
- else ->
- if (isFolded)
- R.raw.fingerprint_edu_lottie_folded_top_right
- else
- R.raw.fingerprint_edu_lottie_landscape_top_right
- }
- }
-
- override fun onAttach(context: Context) {
- ViewModelProvider(requireActivity()).let { provider ->
- _viewModel = provider[FingerprintEnrollFindSensorViewModel::class.java]
- _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
- _rotationViewModel = provider[DeviceRotationViewModel::class.java]
- _foldedViewModel = provider[DeviceFoldedViewModel::class.java]
- _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
- }
- super.onAttach(context)
- }
-
- companion object {
- private const val DEBUG = false
- private const val TAG = "FingerprintEnrollFindSfpsFragment"
- }
-}
-
-fun FragmentActivity.bindFingerprintEnrollFindSfpsView(
- view: GlifLayout,
- onSkipClickListener: View.OnClickListener
-) {
- view.getMixin(FooterBarMixin::class.java).let {
- it.secondaryButton = FooterButton.Builder(this)
- .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
- .setButtonType(FooterButton.ButtonType.SKIP)
- .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
- .build()
- it.secondaryButton.setOnClickListener(onSkipClickListener)
- }
-
- GlifLayoutHelper(this, view).let {
- it.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title)
- it.setDescriptionText(
- getText(R.string.security_settings_sfps_enroll_find_sensor_message)
- )
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.kt
deleted file mode 100644
index 3dce99c..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.kt
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.content.Context
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.ViewModelProvider
-import com.airbnb.lottie.LottieAnimationView
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-
-/**
- * Fragment explaining the under-display fingerprint sensor location for fingerprint enrollment.
- * It interacts with Primary button, and LottieAnimationView.
- * <pre>
- * | Has | UDFPS | SFPS | Other (Rear FPS) |
- * |---------------------|-------|------|------------------|
- * | Primary button | Yes | No | No |
- * | Illustration Lottie | Yes | Yes | No |
- * | Animation | No | No | Depend on layout |
- * | Progress ViewModel | No | Yes | Yes |
- * | Orientation detect | No | Yes | No |
- * | Foldable detect | No | Yes | No |
- * </pre>
- */
-class FingerprintEnrollFindUdfpsFragment : Fragment() {
-
- private var _viewModel: FingerprintEnrollFindSensorViewModel? = null
- private val mViewModel: FingerprintEnrollFindSensorViewModel
- get() = _viewModel!!
-
- private var findUdfpsView: GlifLayout? = null
-
- private val mOnSkipClickListener =
- View.OnClickListener { _: View? -> mViewModel.onSkipButtonClick() }
-
- private val mOnStartClickListener =
- View.OnClickListener { _: View? -> mViewModel.onStartButtonClick() }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View = (inflater.inflate(
- R.layout.udfps_enroll_find_sensor_layout,
- container,
- false
- ) as GlifLayout).also {
- findUdfpsView = it
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- requireActivity().bindFingerprintEnrollFindUdfpsView(
- view = findUdfpsView!!,
- isAccessibilityEnabled = mViewModel.isAccessibilityEnabled,
- onSkipClickListener = mOnSkipClickListener,
- onStartClickListener = mOnStartClickListener
- )
- }
-
- override fun onAttach(context: Context) {
- _viewModel = ViewModelProvider(requireActivity())[
- FingerprintEnrollFindSensorViewModel::class.java
- ]
- super.onAttach(context)
- }
-}
-
-fun FragmentActivity.bindFingerprintEnrollFindUdfpsView(
- view: GlifLayout,
- isAccessibilityEnabled: Boolean,
- onSkipClickListener: View.OnClickListener,
- onStartClickListener: View.OnClickListener,
-) {
- GlifLayoutHelper(this, view).let { helper ->
- helper.setHeaderText(R.string.security_settings_udfps_enroll_find_sensor_title)
- helper.setDescriptionText(
- getText(R.string.security_settings_udfps_enroll_find_sensor_message)
- )
- }
-
- view.getMixin(FooterBarMixin::class.java)!!.let {
- it.secondaryButton = FooterButton.Builder(this)
- .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
- .setButtonType(FooterButton.ButtonType.SKIP)
- .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
- .build()
- it.secondaryButton.setOnClickListener(onSkipClickListener)
-
- it.primaryButton = FooterButton.Builder(this)
- .setText(R.string.security_settings_udfps_enroll_find_sensor_start_button)
- .setButtonType(FooterButton.ButtonType.NEXT)
- .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
- .build()
- it.primaryButton.setOnClickListener(onStartClickListener)
- }
-
- view.findViewById<LottieAnimationView>(R.id.illustration_lottie)!!.let {
- it.setOnClickListener(onStartClickListener)
- if (isAccessibilityEnabled) {
- it.setAnimation(R.raw.udfps_edu_a11y_lottie)
- }
- }
-}
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.kt
deleted file mode 100644
index 2af2dee..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.kt
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.content.Context
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.ViewModelProvider
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-
-/**
- * Fragment which concludes fingerprint enrollment.
- */
-class FingerprintEnrollFinishFragment : Fragment() {
-
- private var _viewModel: FingerprintEnrollFinishViewModel? = null
- private val viewModel: FingerprintEnrollFinishViewModel
- get() = _viewModel!!
-
- private val addButtonClickListener =
- View.OnClickListener { _: View? -> viewModel.onAddButtonClick() }
-
- private val nextButtonClickListener =
- View.OnClickListener { _: View? -> viewModel.onNextButtonClick() }
- override fun onAttach(context: Context) {
- super.onAttach(context)
- _viewModel = ViewModelProvider(requireActivity())[
- FingerprintEnrollFinishViewModel::class.java
- ]
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ) : View = (inflater.inflate(
- if (viewModel.canAssumeSfps())
- R.layout.sfps_enroll_finish
- else
- R.layout.fingerprint_enroll_finish,
- container,
- false
- ) as GlifLayout).also {
- requireActivity().bindFingerprintEnrollFinishFragment(
- view = it,
- isSuw = viewModel.request.isSuw,
- canAssumeSfps = viewModel.canAssumeSfps(),
- isAnotherFingerprintEnrollable = viewModel.isAnotherFingerprintEnrollable,
- nextButtonClickListener = nextButtonClickListener,
- addButtonClickListener = addButtonClickListener
- )
- }
-}
-
-fun FragmentActivity.bindFingerprintEnrollFinishFragment(
- view: GlifLayout,
- isSuw: Boolean,
- canAssumeSfps: Boolean,
- isAnotherFingerprintEnrollable: Boolean,
- nextButtonClickListener: View.OnClickListener,
- addButtonClickListener: View.OnClickListener
-) {
- GlifLayoutHelper(this, view).apply {
- setHeaderText(R.string.security_settings_fingerprint_enroll_finish_title)
- setDescriptionText(
- getString(
- if (canAssumeSfps && isAnotherFingerprintEnrollable)
- R.string.security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message
- else
- R.string.security_settings_fingerprint_enroll_finish_v2_message
- )
- )
- }
-
- view.getMixin(FooterBarMixin::class.java).also { footer ->
- footer.primaryButton = FooterButton.Builder(this)
- .setText(
- if (isSuw)
- R.string.next_label
- else
- R.string.security_settings_fingerprint_enroll_done
- )
- .setListener(nextButtonClickListener)
- .setButtonType(FooterButton.ButtonType.NEXT)
- .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
- .build()
- if (isAnotherFingerprintEnrollable) {
- footer.secondaryButton = FooterButton.Builder(this)
- .setText(R.string.fingerprint_enroll_button_add)
- .setListener(addButtonClickListener)
- .setButtonType(FooterButton.ButtonType.SKIP)
- .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
- .build()
- }
- }
-
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.kt
deleted file mode 100644
index d1b3799..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.kt
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.app.admin.DevicePolicyManager
-import android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_UNLOCK_DISABLED
-import android.content.Context
-import android.graphics.PorterDuff
-import android.graphics.PorterDuffColorFilter
-import android.os.Bundle
-import android.text.Html
-import android.text.method.LinkMovementMethod
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.ImageView
-import android.widget.ScrollView
-import android.widget.TextView
-import androidx.annotation.StringRes
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_UNKNOWN
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-import com.google.android.setupdesign.template.RequireScrollMixin
-import com.google.android.setupdesign.util.DeviceHelper
-import com.google.android.setupdesign.util.DynamicColorPalette
-import com.google.android.setupdesign.util.DynamicColorPalette.ColorType.ACCENT
-import java.util.function.Supplier
-import kotlinx.coroutines.flow.first
-import kotlinx.coroutines.launch
-
-/**
- * Fingerprint intro onboarding page fragment implementation
- */
-class FingerprintEnrollIntroFragment : Fragment() {
-
- private val viewModelProvider: ViewModelProvider
- get() = ViewModelProvider(requireActivity())
-
- private var _viewModel: FingerprintEnrollIntroViewModel? = null
- private val viewModel: FingerprintEnrollIntroViewModel
- get() = _viewModel!!
-
- private var introView: GlifLayout? = null
-
- private var primaryFooterButton: FooterButton? = null
-
- private var secondaryFooterButton: FooterButton? = null
-
- private val onNextClickListener =
- View.OnClickListener { _: View? ->
- activity?.lifecycleScope?.let {
- viewModel.onNextButtonClick(it)
- }
- }
-
- private val onSkipOrCancelClickListener =
- View.OnClickListener { _: View? ->
- activity?.lifecycleScope?.let {
- viewModel.onSkipOrCancelButtonClick(it)
- }
- }
-
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View {
- introView = inflater.inflate(
- R.layout.fingerprint_enroll_introduction,
- container,
- false
- ) as GlifLayout
- return introView!!
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- requireActivity().bindFingerprintEnrollIntroView(
- view = introView!!,
- canAssumeUdfps = viewModel.canAssumeUdfps,
- isBiometricUnlockDisabledByAdmin = viewModel.isBiometricUnlockDisabledByAdmin,
- isParentalConsentRequired = viewModel.isParentalConsentRequired,
- descriptionDisabledByAdminSupplier = { getDescriptionDisabledByAdmin(view.context) }
- )
- }
-
- override fun onStart() {
- val context: Context = requireContext()
- val footerBarMixin: FooterBarMixin = footerBarMixin
- viewModel.updateEnrollableStatus(lifecycleScope)
- initPrimaryFooterButton(context, footerBarMixin)
- initSecondaryFooterButton(context, footerBarMixin)
- collectPageStatusFlowIfNeed()
- super.onStart()
- }
-
- private fun initPrimaryFooterButton(
- context: Context,
- footerBarMixin: FooterBarMixin
- ) {
- if (footerBarMixin.primaryButton != null) {
- return
- }
- primaryFooterButton = FooterButton.Builder(context)
- .setText(R.string.security_settings_fingerprint_enroll_introduction_agree)
- .setButtonType(FooterButton.ButtonType.OPT_IN)
- .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
- .build()
- .also {
- it.setOnClickListener(onNextClickListener)
- footerBarMixin.primaryButton = it
- }
- }
-
- private fun initSecondaryFooterButton(
- context: Context,
- footerBarMixin: FooterBarMixin
- ) {
- if (footerBarMixin.secondaryButton != null) {
- return
- }
- secondaryFooterButton = FooterButton.Builder(context)
- .setText(
- if (viewModel.request.isAfterSuwOrSuwSuggestedAction)
- R.string.security_settings_fingerprint_enroll_introduction_cancel
- else
- R.string.security_settings_fingerprint_enroll_introduction_no_thanks
- )
- .setButtonType(FooterButton.ButtonType.NEXT)
- .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
- .build()
- .also {
- it.setOnClickListener(onSkipOrCancelClickListener)
- footerBarMixin.setSecondaryButton(it, true /* usePrimaryStyle */)
- }
- }
-
- private fun collectPageStatusFlowIfNeed() {
- lifecycleScope.launch {
- val status = viewModel.pageStatusFlow.first()
- Log.d(TAG, "collectPageStatusFlowIfNeed status:$status")
- if (status.hasScrollToBottom()
- || status.enrollableStatus === FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
- ) {
- // Update once and do not requireScrollWithButton() again when page has
- // scrolled to bottom or User has enrolled at least a fingerprint, because if
- // we requireScrollWithButton() again, primary button will become "More" after
- // scrolling.
- updateFooterButtons(status)
- } else {
- introView!!.getMixin(RequireScrollMixin::class.java).let {
- it.requireScrollWithButton(
- requireActivity(),
- primaryFooterButton!!,
- moreButtonTextRes,
- onNextClickListener
- )
- it.setOnRequireScrollStateChangedListener { scrollNeeded: Boolean ->
- viewModel.setHasScrolledToBottom(!scrollNeeded, lifecycleScope)
- }
- }
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- viewModel.pageStatusFlow.collect(
- this@FingerprintEnrollIntroFragment::updateFooterButtons
- )
- }
- }
- }
- }
-
- override fun onAttach(context: Context) {
- _viewModel = viewModelProvider[FingerprintEnrollIntroViewModel::class.java]
- super.onAttach(context)
- }
-
- private val footerBarMixin: FooterBarMixin
- get() = introView!!.getMixin(FooterBarMixin::class.java)
-
- private fun getDescriptionDisabledByAdmin(context: Context): String? {
- val defaultStrId: Int =
- R.string.security_settings_fingerprint_enroll_introduction_message_unlock_disabled
- val devicePolicyManager: DevicePolicyManager =
- checkNotNull(requireActivity().getSystemService(DevicePolicyManager::class.java))
-
- return devicePolicyManager.resources.getString(FINGERPRINT_UNLOCK_DISABLED) {
- context.getString(defaultStrId)
- }
- }
-
- private fun updateFooterButtons(status: FingerprintEnrollIntroStatus) {
- if (DEBUG) {
- Log.d(TAG, "updateFooterButtons($status)")
- }
- primaryFooterButton!!.setText(
- context,
- if (status.enrollableStatus === FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
- R.string.done
- else if (status.hasScrollToBottom())
- R.string.security_settings_fingerprint_enroll_introduction_agree
- else
- moreButtonTextRes
- )
- secondaryFooterButton!!.visibility =
- if (status.hasScrollToBottom()
- && status.enrollableStatus !== FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
- )
- View.VISIBLE
- else
- View.INVISIBLE
-
- view!!.requireViewById<TextView>(R.id.error_text).let {
- when (status.enrollableStatus) {
- FINGERPRINT_ENROLLABLE_OK -> {
- it.text = null
- it.visibility = View.GONE
- }
-
- FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX -> {
- it.setText(R.string.fingerprint_intro_error_max)
- it.visibility = View.VISIBLE
- }
-
- FINGERPRINT_ENROLLABLE_UNKNOWN -> {}
- }
- }
- }
-
- @get:StringRes
- private val moreButtonTextRes: Int
- get() = R.string.security_settings_face_enroll_introduction_more
-
- companion object {
- private const val TAG = "FingerprintEnrollIntroFragment"
- private const val DEBUG = false
- }
-}
-
-fun FragmentActivity.bindFingerprintEnrollIntroView(
- view: GlifLayout,
- canAssumeUdfps: Boolean,
- isBiometricUnlockDisabledByAdmin: Boolean,
- isParentalConsentRequired: Boolean,
- descriptionDisabledByAdminSupplier: Supplier<String?>
-) {
- val context = view.context
-
- val iconFingerprint = view.findViewById<ImageView>(R.id.icon_fingerprint)!!
- val iconDeviceLocked = view.findViewById<ImageView>(R.id.icon_device_locked)!!
- val iconTrashCan = view.findViewById<ImageView>(R.id.icon_trash_can)!!
- val iconInfo = view.findViewById<ImageView>(R.id.icon_info)!!
- val iconShield = view.findViewById<ImageView>(R.id.icon_shield)!!
- val iconLink = view.findViewById<ImageView>(R.id.icon_link)!!
- val footerMessage6 = view.findViewById<TextView>(R.id.footer_message_6)!!
-
- PorterDuffColorFilter(
- DynamicColorPalette.getColor(context, ACCENT),
- PorterDuff.Mode.SRC_IN
- ).let { colorFilter ->
- iconFingerprint.drawable.colorFilter = colorFilter
- iconDeviceLocked.drawable.colorFilter = colorFilter
- iconTrashCan.drawable.colorFilter = colorFilter
- iconInfo.drawable.colorFilter = colorFilter
- iconShield.drawable.colorFilter = colorFilter
- iconLink.drawable.colorFilter = colorFilter
- }
-
- view.findViewById<TextView>(R.id.footer_learn_more)!!.let { learnMore ->
- learnMore.movementMethod = LinkMovementMethod.getInstance()
- val footerLinkStr: String = context.getString(
- R.string.security_settings_fingerprint_v2_enroll_introduction_message_learn_more,
- Html.FROM_HTML_MODE_LEGACY
- )
- learnMore.text = Html.fromHtml(footerLinkStr)
- }
-
- if (canAssumeUdfps) {
- footerMessage6.visibility = View.VISIBLE
- iconShield.visibility = View.VISIBLE
- } else {
- footerMessage6.visibility = View.GONE
- iconShield.visibility = View.GONE
- }
- val glifLayoutHelper = GlifLayoutHelper(this, view)
- if (isBiometricUnlockDisabledByAdmin && !isParentalConsentRequired) {
- glifLayoutHelper.setHeaderText(
- R.string.security_settings_fingerprint_enroll_introduction_title_unlock_disabled
- )
- glifLayoutHelper.setDescriptionText(descriptionDisabledByAdminSupplier.get())
- } else {
- glifLayoutHelper.setHeaderText(
- R.string.security_settings_fingerprint_enroll_introduction_title
- )
- glifLayoutHelper.setDescriptionText(
- getString(
- R.string.security_settings_fingerprint_enroll_introduction_v3_message,
- DeviceHelper.getDeviceName(context)
- )
- )
- }
-
- view.findViewById<ScrollView>(com.google.android.setupdesign.R.id.sud_scroll_view)
- ?.importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_YES
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.kt
deleted file mode 100644
index ec96597..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.kt
+++ /dev/null
@@ -1,633 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.annotation.StyleRes
-import android.content.Intent
-import android.content.res.ColorStateList
-import android.content.res.Configuration
-import android.content.res.Resources.Theme
-import android.graphics.Color
-import android.os.Bundle
-import android.os.SystemClock
-import android.util.Log
-import androidx.activity.result.ActivityResult
-import androidx.activity.result.ActivityResultCallback
-import androidx.activity.result.ActivityResultLauncher
-import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
-import androidx.annotation.ColorInt
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.fragment.app.FragmentManager.POP_BACK_STACK_INCLUSIVE
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import androidx.lifecycle.viewmodel.CreationExtras
-import androidx.lifecycle.viewmodel.MutableCreationExtras
-import com.android.settings.R
-import com.android.settings.Utils
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics2.factory.BiometricsViewModelFactory
-import com.android.settings.biometrics2.factory.BiometricsViewModelFactory.CHALLENGE_GENERATOR_KEY
-import com.android.settings.biometrics2.factory.BiometricsViewModelFactory.CREDENTIAL_MODEL_KEY
-import com.android.settings.biometrics2.factory.BiometricsViewModelFactory.ENROLLMENT_REQUEST_KEY
-import com.android.settings.biometrics2.ui.model.CredentialModel
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.FingerprintChallengeGenerator
-import com.android.settings.biometrics2.ui.viewmodel.CredentialAction
-import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FingerprintEnrollEnrollingAction
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FingerprintEnrollFindSensorAction
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FingerprintEnrollFinishAction
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollmentViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
-import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
-import com.google.android.setupdesign.util.ThemeHelper
-import kotlinx.coroutines.launch
-
-/**
- * Fingerprint enrollment activity implementation
- */
-open class FingerprintEnrollmentActivity : FragmentActivity() {
- /** SetupWizard activity*/
- class SetupActivity : FingerprintEnrollmentActivity()
-
- /** Internal activity for FingerprintSettings */
- class InternalActivity : FingerprintEnrollmentActivity()
-
- private val viewModelProvider: ViewModelProvider by lazy {
- ViewModelProvider(this)
- }
-
- private val viewModel: FingerprintEnrollmentViewModel by lazy {
- viewModelProvider[FingerprintEnrollmentViewModel::class.java]
- }
-
- private val autoCredentialViewModel: AutoCredentialViewModel by lazy {
- viewModelProvider[AutoCredentialViewModel::class.java]
- }
-
- private val introViewModel: FingerprintEnrollIntroViewModel by lazy {
- viewModelProvider[FingerprintEnrollIntroViewModel::class.java]
- }
-
- private val findSensorViewModel: FingerprintEnrollFindSensorViewModel by lazy {
- viewModelProvider[FingerprintEnrollFindSensorViewModel::class.java]
- }
-
- private val progressViewModel: FingerprintEnrollProgressViewModel by lazy {
- viewModelProvider[FingerprintEnrollProgressViewModel::class.java]
- }
-
- private val enrollingViewModel: FingerprintEnrollEnrollingViewModel by lazy {
- viewModelProvider[FingerprintEnrollEnrollingViewModel::class.java]
- }
-
- private val finishViewModel: FingerprintEnrollFinishViewModel by lazy {
- viewModelProvider[FingerprintEnrollFinishViewModel::class.java]
- }
-
- private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel by lazy {
- viewModelProvider[FingerprintEnrollErrorDialogViewModel::class.java]
- }
-
- private var isFirstFragmentAdded = false
-
- private val findSensorActionObserver = Observer<Int?> { action ->
- if (DEBUG) {
- Log.d(TAG, "findSensorActionObserver($action)")
- }
- action?.let { onFindSensorAction(it) }
- }
-
- private val enrollingActionObserver = Observer<Int?> { action ->
- if (DEBUG) {
- Log.d(TAG, "enrollingActionObserver($action)")
- }
- action?.let { onEnrollingAction(it) }
- }
-
- private val finishActionObserver = Observer<Int?> { action ->
- if (DEBUG) {
- Log.d(TAG, "finishActionObserver($action)")
- }
- action?.let { onFinishAction(it) }
- }
-
- private val chooseLockResultCallback: ActivityResultCallback<ActivityResult> =
- ActivityResultCallback { result ->
- onChooseOrConfirmLockResult(true /* isChooseLock */, result)
- }
-
- private val chooseLockLauncher: ActivityResultLauncher<Intent> =
- registerForActivityResult(StartActivityForResult(), chooseLockResultCallback)
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- // Theme
- setTheme(viewModel.request.theme)
- ThemeHelper.trySetDynamicColor(this)
- window.statusBarColor = Color.TRANSPARENT
-
- // fragment
- setContentView(R.layout.biometric_enrollment_container)
- val fragment: Fragment? = supportFragmentManager.findFragmentById(
- R.id.fragment_container_view
- )
- Log.d(
- TAG,
- "onCreate() has savedInstance:$(savedInstanceState != null), fragment:$fragment"
- )
-
- isFirstFragmentAdded = (savedInstanceState != null)
- if (fragment == null) {
- checkCredential()
- if (viewModel.request.isSkipFindSensor) {
- startEnrollingFragment()
- } else if (viewModel.request.isSkipIntro) {
- startFindSensorFragment()
- } else {
- startIntroFragment()
- }
- } else {
- val tag: String? = fragment.tag
- if (INTRO_TAG == tag) {
- attachIntroViewModel()
- } else if (FIND_SENSOR_TAG == tag) {
- attachFindSensorViewModel()
- attachIntroViewModel()
- } else if (ENROLLING_TAG == tag) {
- attachEnrollingViewModel()
- attachFindSensorViewModel()
- attachIntroViewModel()
- } else if (FINISH_TAG == tag) {
- attachFinishViewModel()
- attachFindSensorViewModel()
- attachIntroViewModel()
- } else {
- Log.e(TAG, "fragment tag $tag not found")
- finish()
- return
- }
- }
-
- collectFlows()
- }
-
- private fun collectFlows() {
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- viewModel.setResultFlow.collect {
- Log.d(TAG, "setResultLiveData($it)")
- onSetActivityResult(it)
- }
- }
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- autoCredentialViewModel.generateChallengeFailedFlow.collect {
- Log.d(TAG, "generateChallengeFailedFlow($it)")
- onSetActivityResult(ActivityResult(RESULT_CANCELED, null))
- }
- }
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- errorDialogViewModel.newDialogFlow.collect {
- Log.d(TAG, "newErrorDialogFlow($it)")
- FingerprintEnrollErrorDialog.newInstance(it).show(
- supportFragmentManager,
- ERROR_DIALOG_TAG
- )
- }
- }
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- errorDialogViewModel.setResultFlow.collect {
- Log.d(TAG, "errorDialogSetResultFlow($it)")
- when (it) {
- FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH -> onSetActivityResult(
- ActivityResult(BiometricEnrollBase.RESULT_FINISHED, null)
- )
-
- FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT -> onSetActivityResult(
- ActivityResult(BiometricEnrollBase.RESULT_TIMEOUT, null)
- )
- }
- }
- }
- }
- }
-
- private fun startFragment(fragmentClass: Class<out Fragment>, tag: String) {
- if (!isFirstFragmentAdded) {
- supportFragmentManager.beginTransaction()
- .setReorderingAllowed(true)
- .replace(R.id.fragment_container_view, fragmentClass, null, tag)
- .commit()
- isFirstFragmentAdded = true
- } else {
- supportFragmentManager.beginTransaction()
- .setReorderingAllowed(true)
- .setCustomAnimations(
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_enter_dynamic_color,
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_exit,
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_enter_dynamic_color,
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_exit
- )
- .replace(R.id.fragment_container_view, fragmentClass, null, tag)
- .addToBackStack(tag)
- .commit()
- }
- }
-
- private fun startIntroFragment() {
- attachIntroViewModel()
- startFragment(FingerprintEnrollIntroFragment::class.java, INTRO_TAG)
- }
-
- private fun attachIntroViewModel() {
- val request: EnrollmentRequest = viewModel.request
- if (request.isSkipIntro || request.isSkipFindSensor) {
- return
- }
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.STARTED) {
- introViewModel.actionFlow.collect(this@FingerprintEnrollmentActivity::onIntroAction)
- }
- }
- }
-
- // We need to make sure token is valid before entering find sensor page
- private fun startFindSensorFragment() {
- // Always setToken into progressViewModel even it is not necessary action for UDFPS
- progressViewModel.setToken(autoCredentialViewModel.token)
- attachFindSensorViewModel()
- val fragmentClass: Class<out Fragment> = if (viewModel.canAssumeUdfps) {
- FingerprintEnrollFindUdfpsFragment::class.java
- } else if (viewModel.canAssumeSfps) {
- FingerprintEnrollFindSfpsFragment::class.java
- } else {
- FingerprintEnrollFindRfpsFragment::class.java
- }
- startFragment(fragmentClass, FIND_SENSOR_TAG)
- }
-
- private fun attachFindSensorViewModel() {
- if (viewModel.request.isSkipFindSensor) {
- return
- }
- findSensorViewModel.let {
- // Clear ActionLiveData in FragmentViewModel to prevent getting previous action during
- // recreate, like press 'Start' then press 'back' in FingerprintEnrollEnrolling
- // activity.
- it.clearActionLiveData()
- it.actionLiveData.observe(this, findSensorActionObserver)
- }
- }
-
- private fun startEnrollingFragment() {
- // Always setToken into progressViewModel even it is not necessary action for SFPS or RFPS
- progressViewModel.setToken(autoCredentialViewModel.token)
- attachEnrollingViewModel()
- val fragmentClass: Class<out Fragment> = if (viewModel.canAssumeUdfps) {
- FingerprintEnrollEnrollingUdfpsFragment::class.java
- } else if (viewModel.canAssumeSfps) {
- FingerprintEnrollEnrollingSfpsFragment::class.java
- } else {
- FingerprintEnrollEnrollingRfpsFragment::class.java
- }
- startFragment(fragmentClass, ENROLLING_TAG)
- }
-
- private fun attachEnrollingViewModel() {
- enrollingViewModel.let {
- it.clearActionLiveData()
- it.actionLiveData.observe(this, enrollingActionObserver)
- }
- }
-
- private fun startFinishFragment() {
- viewModel.isNewFingerprintAdded = true
- attachFinishViewModel()
- if (viewModel.request.isSkipFindSensor) {
- // Set page to Finish
- supportFragmentManager.beginTransaction()
- .setReorderingAllowed(true)
- .setCustomAnimations(
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_enter_dynamic_color,
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_exit,
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_enter_dynamic_color,
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_exit
- )
- .replace(
- R.id.fragment_container_view,
- FingerprintEnrollFinishFragment::class.java,
- null,
- FINISH_TAG
- )
- .commit()
- } else {
- // Remove Enrolling page
- supportFragmentManager.popBackStack()
-
- // Remove old Finish page if any
- if (supportFragmentManager.findFragmentByTag(FINISH_TAG) != null) {
- supportFragmentManager.popBackStack(FINISH_TAG, POP_BACK_STACK_INCLUSIVE)
- }
-
- // Remove FindSensor page if maxEnrolled
- if (viewModel.isMaxEnrolledReached(autoCredentialViewModel.userId)
- && supportFragmentManager.findFragmentByTag(FIND_SENSOR_TAG) != null
- ) {
- supportFragmentManager.popBackStack(FIND_SENSOR_TAG, POP_BACK_STACK_INCLUSIVE)
- }
-
- // Add Finish page
- supportFragmentManager.beginTransaction()
- .setReorderingAllowed(true)
- .setCustomAnimations(
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_enter_dynamic_color,
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_exit,
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_enter_dynamic_color,
- com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_exit
- )
- .replace(
- R.id.fragment_container_view,
- FingerprintEnrollFinishFragment::class.java,
- null,
- FINISH_TAG
- )
- .addToBackStack(FINISH_TAG)
- .commit()
- }
- }
-
- private fun attachFinishViewModel() {
- finishViewModel.let {
- it.clearActionLiveData()
- it.actionLiveData.observe(this, finishActionObserver)
- }
- }
-
- private fun onSetActivityResult(result: ActivityResult) {
- val challengeExtras: Bundle? = autoCredentialViewModel.createGeneratingChallengeExtras()
- val overrideResult: ActivityResult = viewModel.getOverrideActivityResult(
- result, challengeExtras
- )
- if (DEBUG) {
- Log.d(
- TAG, "onSetActivityResult(" + result + "), override:" + overrideResult
- + ") challengeExtras:" + challengeExtras
- )
- }
- setResult(overrideResult.resultCode, overrideResult.data)
- finish()
- }
-
- private fun checkCredential() {
- when (autoCredentialViewModel.checkCredential(lifecycleScope)) {
- CredentialAction.FAIL_NEED_TO_CHOOSE_LOCK -> {
- val intent: Intent = autoCredentialViewModel.createChooseLockIntent(
- this,
- viewModel.request.isSuw,
- viewModel.request.suwExtras
- )
- if (!viewModel.isWaitingActivityResult.compareAndSet(false, true)) {
- Log.w(TAG, "chooseLock, fail to set isWaiting flag to true")
- }
- chooseLockLauncher.launch(intent)
- return
- }
-
- CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK -> {
- val launched: Boolean = autoCredentialViewModel.createConfirmLockLauncher(
- this,
- LAUNCH_CONFIRM_LOCK_ACTIVITY,
- getString(R.string.security_settings_fingerprint_preference_title)
- ).launch()
- if (!launched) {
- // This shouldn't happen, as we should only end up at this step if a lock thingy
- // is already set.
- Log.e(TAG, "confirmLock, launched is true")
- finish()
- } else if (!viewModel.isWaitingActivityResult.compareAndSet(false, true)) {
- Log.w(TAG, "confirmLock, fail to set isWaiting flag to true")
- }
- return
- }
-
- CredentialAction.CREDENTIAL_VALID,
- CredentialAction.IS_GENERATING_CHALLENGE -> {}
- }
- }
-
- private fun onChooseOrConfirmLockResult(
- isChooseLock: Boolean,
- activityResult: ActivityResult
- ) {
- if (!viewModel.isWaitingActivityResult.compareAndSet(true, false)) {
- Log.w(TAG, "isChooseLock:$isChooseLock, fail to unset waiting flag")
- }
- if (!autoCredentialViewModel.generateChallengeAsCredentialActivityResult(
- isChooseLock,
- activityResult,
- lifecycleScope
- )
- ) {
- onSetActivityResult(activityResult)
- }
- }
-
- private fun onIntroAction(action: FingerprintEnrollIntroAction) {
- Log.d(TAG, "onIntroAction($action)")
- when (action) {
- FingerprintEnrollIntroAction.DONE_AND_FINISH -> {
- onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_FINISHED, null))
- return
- }
-
- FingerprintEnrollIntroAction.SKIP_OR_CANCEL -> {
- onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_SKIP, null))
- return
- }
-
- FingerprintEnrollIntroAction.CONTINUE_ENROLL -> {
- startFindSensorFragment()
- }
- }
- }
-
- private fun onFindSensorAction(@FingerprintEnrollFindSensorAction action: Int) {
- when (action) {
- FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP -> {
- onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_SKIP, null))
- return
- }
-
- FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG -> {
- SkipSetupFindFpsDialog().show(
- supportFragmentManager,
- SKIP_SETUP_FIND_FPS_DIALOG_TAG
- )
- return
- }
-
- FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START -> {
- startEnrollingFragment()
- }
- }
- }
-
- private fun onEnrollingAction(@FingerprintEnrollEnrollingAction action: Int) {
- when (action) {
- FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE -> {
- startFinishFragment()
- }
-
- FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP -> {
- onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_SKIP, null))
- }
-
- FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG -> {
- FingerprintEnrollEnrollingIconTouchDialog().show(
- supportFragmentManager,
- SKIP_SETUP_FIND_FPS_DIALOG_TAG
- )
- }
-
- FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED -> {
- if (supportFragmentManager.backStackEntryCount > 0) {
- supportFragmentManager.popBackStack()
- } else {
- onSetActivityResult(ActivityResult(RESULT_CANCELED, null))
- }
- }
- }
- }
-
- private fun onFinishAction(@FingerprintEnrollFinishAction action: Int) {
- when (action) {
- FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK -> {
- startEnrollingFragment()
- }
-
- FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK -> {
- val data: Intent? = if (viewModel.request.isSuw) {
- Intent().also {
- it.putExtras(
- viewModel.getSuwFingerprintCountExtra(
- autoCredentialViewModel.userId
- )
- )
- }
- } else {
- null
- }
- onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_FINISHED, data))
- }
- }
- }
-
- override fun onPause() {
- super.onPause()
- viewModel.checkFinishActivityDuringOnPause(
- isFinishing,
- isChangingConfigurations,
- lifecycleScope
- )
- }
-
- override fun onDestroy() {
- viewModel.updateFingerprintSuggestionEnableState(autoCredentialViewModel.userId)
- super.onDestroy()
- }
-
- override fun onApplyThemeResource(theme: Theme, @StyleRes resid: Int, first: Boolean) {
- theme.applyStyle(R.style.SetupWizardPartnerResource, true)
- super.onApplyThemeResource(theme, resid, first)
- }
-
- @Deprecated("Deprecated in Java")
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- if (requestCode == LAUNCH_CONFIRM_LOCK_ACTIVITY) {
- onChooseOrConfirmLockResult(false, ActivityResult(resultCode, data))
- return
- }
- super.onActivityResult(requestCode, resultCode, data)
- }
-
- override val defaultViewModelCreationExtras: CreationExtras
- get() = MutableCreationExtras(super.defaultViewModelCreationExtras).also {
- it[CHALLENGE_GENERATOR_KEY] = FingerprintChallengeGenerator(
- featureFactory.biometricsRepositoryProvider.getFingerprintRepository(application)!!
- )
- it[ENROLLMENT_REQUEST_KEY] =
- EnrollmentRequest(intent, applicationContext, this is SetupActivity)
- it[CREDENTIAL_MODEL_KEY] =
- CredentialModel(intent.extras, SystemClock.elapsedRealtimeClock())
- }
-
- override val defaultViewModelProviderFactory: ViewModelProvider.Factory
- get() = BiometricsViewModelFactory()
-
- override fun onAttachedToWindow() {
- super.onAttachedToWindow()
- window.statusBarColor = backgroundColor
- }
-
- @get:ColorInt
- private val backgroundColor: Int
- get() {
- val stateList: ColorStateList? =
- Utils.getColorAttr(this, android.R.attr.windowBackground)
- return stateList?.defaultColor ?: Color.TRANSPARENT
- }
-
- override fun onConfigurationChanged(newConfig: Configuration) {
- viewModelProvider[DeviceFoldedViewModel::class.java].onConfigurationChanged(newConfig)
- super.onConfigurationChanged(newConfig)
- }
-
- companion object {
- private const val DEBUG = false
- private const val TAG = "FingerprintEnrollmentActivity"
- protected const val LAUNCH_CONFIRM_LOCK_ACTIVITY = 1
-
- private const val INTRO_TAG = "intro"
- private const val FIND_SENSOR_TAG = "find-sensor"
- private const val ENROLLING_TAG = "enrolling"
- private const val FINISH_TAG = "finish"
- private const val SKIP_SETUP_FIND_FPS_DIALOG_TAG = "skip-setup-dialog"
- private const val ERROR_DIALOG_TAG = "error-dialog"
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.kt b/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.kt
deleted file mode 100644
index 756f309..0000000
--- a/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.kt
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.app.Activity
-import android.text.TextUtils
-import android.view.View
-import androidx.annotation.StringRes
-import com.google.android.setupdesign.GlifLayout
-
-/**
- * Utils class for GlifLayout
- */
-class GlifLayoutHelper(val activity: Activity, val glifLayout: GlifLayout) {
-
- /**
- * Sets header text to GlifLayout
- */
- fun setHeaderText(@StringRes textResId: Int) {
- val layoutTitle = glifLayout.headerTextView
- val previousTitle = layoutTitle.text
- val title = activity.getText(textResId)
- if (previousTitle !== title) {
- if (!TextUtils.isEmpty(previousTitle)) {
- layoutTitle.accessibilityLiveRegion = View.ACCESSIBILITY_LIVE_REGION_POLITE
- }
- glifLayout.headerText = title
- glifLayout.headerTextView.contentDescription = title
- activity.title = title
- }
- }
-
- /**
- * Sets description text to GlifLayout
- */
- fun setDescriptionText(description: CharSequence?) {
- val previousDescription = glifLayout.descriptionText
- // Prevent a11y for re-reading the same string
- if (!TextUtils.equals(previousDescription, description)) {
- glifLayout.descriptionText = description
- }
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.kt b/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.kt
deleted file mode 100644
index bb74e36..0000000
--- a/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.kt
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.app.Dialog
-import android.content.Context
-import android.content.DialogInterface
-import android.os.Bundle
-import androidx.appcompat.app.AlertDialog
-import androidx.fragment.app.DialogFragment
-import androidx.lifecycle.ViewModelProvider
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
-
-/**
- * Skip dialog which shows when user clicks "Do it later" button in FingerprintFindSensor page.
- */
-class SkipSetupFindFpsDialog : DialogFragment() {
-
- private var mViewModel: FingerprintEnrollFindSensorViewModel? = null
-
- override fun onCreateDialog(savedInstanceState: Bundle?): Dialog =
- requireActivity().bindSkipSetupFindFpsDialog {
- _: DialogInterface?, _: Int -> mViewModel?.onSkipDialogButtonClick()
- }
-
- override fun onAttach(context: Context) {
- mViewModel = ViewModelProvider(requireActivity())[
- FingerprintEnrollFindSensorViewModel::class.java
- ]
- super.onAttach(context)
- }
-}
-
-fun Context.bindSkipSetupFindFpsDialog(
- positiveButtonClickListener: DialogInterface.OnClickListener
-): AlertDialog =
- AlertDialog.Builder(this, R.style.Theme_AlertDialog)
- .setTitle(R.string.setup_fingerprint_enroll_skip_title)
- .setPositiveButton(R.string.skip_anyway_button_label, positiveButtonClickListener)
- .setNegativeButton(R.string.go_back_button_label, null)
- .setMessage(R.string.setup_fingerprint_enroll_skip_after_adding_lock_text)
- .create()
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.kt
deleted file mode 100644
index 95aee4b..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.kt
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.viewmodel
-
-import android.app.Activity
-import android.app.Application
-import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
-import android.content.Context
-import android.content.Intent
-import android.os.Bundle
-import android.util.Log
-import androidx.activity.result.ActivityResult
-import androidx.lifecycle.AndroidViewModel
-import com.android.internal.widget.LockPatternUtils
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.BiometricUtils
-import com.android.settings.biometrics.BiometricUtils.GatekeeperCredentialNotMatchException
-import com.android.settings.biometrics2.data.repository.FingerprintRepository
-import com.android.settings.biometrics2.ui.model.CredentialModel
-import com.android.settings.password.ChooseLockGeneric
-import com.android.settings.password.ChooseLockPattern
-import com.android.settings.password.ChooseLockSettingsHelper
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.flow.SharedFlow
-import kotlinx.coroutines.flow.asSharedFlow
-import kotlinx.coroutines.launch
-
-/**
- * AutoCredentialViewModel which uses CredentialModel to determine next actions for activity, like
- * start ChooseLockActivity, start ConfirmLockActivity, GenerateCredential, or do nothing.
- */
-class AutoCredentialViewModel(
- application: Application,
- private val lockPatternUtils: LockPatternUtils,
- private val challengeGenerator: ChallengeGenerator,
- private val credentialModel: CredentialModel
-) : AndroidViewModel(application) {
-
- /**
- * Generic callback for FingerprintManager#generateChallenge or FaceManager#generateChallenge
- */
- interface GenerateChallengeCallback {
- /** Generic generateChallenge method for FingerprintManager or FaceManager */
- fun onChallengeGenerated(sensorId: Int, userId: Int, challenge: Long)
- }
-
- /**
- * A generic interface class for calling different generateChallenge from FingerprintManager or
- * FaceManager
- */
- interface ChallengeGenerator {
-
- /** Callback that will be called later after challenge generated */
- var callback: GenerateChallengeCallback?
-
- /** Method for generating challenge from FingerprintManager or FaceManager */
- fun generateChallenge(userId: Int)
- }
-
- /** Used to generate challenge through FingerprintRepository */
- class FingerprintChallengeGenerator(
- private val fingerprintRepository: FingerprintRepository
- ) : ChallengeGenerator {
-
- override var callback: GenerateChallengeCallback? = null
-
- override fun generateChallenge(userId: Int) {
- callback?.let {
- fingerprintRepository.generateChallenge(userId) {
- sensorId: Int, uid: Int, challenge: Long ->
- it.onChallengeGenerated(sensorId, uid, challenge)
- }
- } ?:run {
- Log.e(TAG, "generateChallenge, null callback")
- }
- }
-
- companion object {
- private const val TAG = "FingerprintChallengeGenerator"
- }
- }
-
- private val _generateChallengeFailedFlow = MutableSharedFlow<Boolean>()
- val generateChallengeFailedFlow: SharedFlow<Boolean>
- get() = _generateChallengeFailedFlow.asSharedFlow()
-
-
- // flag if token is generating through checkCredential()'s generateChallenge()
- private var isGeneratingChallengeDuringCheckingCredential = false
-
- /** Get bundle which passing back to FingerprintSettings for late generateChallenge() */
- fun createGeneratingChallengeExtras(): Bundle? {
- if (!isGeneratingChallengeDuringCheckingCredential
- || !credentialModel.isValidToken
- || !credentialModel.isValidChallenge
- ) {
- return null
- }
- val bundle = Bundle()
- bundle.putByteArray(
- ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN,
- credentialModel.token
- )
- bundle.putLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, credentialModel.challenge)
- return bundle
- }
-
- /** Check credential status for biometric enrollment. */
- fun checkCredential(scope: CoroutineScope): CredentialAction {
- return if (isValidCredential) {
- CredentialAction.CREDENTIAL_VALID
- } else if (isUnspecifiedPassword) {
- CredentialAction.FAIL_NEED_TO_CHOOSE_LOCK
- } else if (credentialModel.isValidGkPwHandle) {
- val gkPwHandle = credentialModel.gkPwHandle
- credentialModel.clearGkPwHandle()
- // GkPwHandle is got through caller activity, we shall not revoke it after
- // generateChallenge(). Let caller activity to make decision.
- generateChallenge(gkPwHandle, false, scope)
- isGeneratingChallengeDuringCheckingCredential = true
- CredentialAction.IS_GENERATING_CHALLENGE
- } else {
- CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK
- }
- }
-
- private fun generateChallenge(
- gkPwHandle: Long,
- revokeGkPwHandle: Boolean,
- scope: CoroutineScope
- ) {
- challengeGenerator.callback = object : GenerateChallengeCallback {
- override fun onChallengeGenerated(sensorId: Int, userId: Int, challenge: Long) {
- var illegalStateExceptionCaught = false
- try {
- val newToken = requestGatekeeperHat(gkPwHandle, challenge, userId)
- credentialModel.challenge = challenge
- credentialModel.token = newToken
- } catch (e: IllegalStateException) {
- Log.e(TAG, "generateChallenge, IllegalStateException", e)
- illegalStateExceptionCaught = true
- } finally {
- if (revokeGkPwHandle) {
- lockPatternUtils.removeGatekeeperPasswordHandle(gkPwHandle)
- }
- Log.d(
- TAG,
- "generateChallenge(), model:$credentialModel"
- + ", revokeGkPwHandle:$revokeGkPwHandle"
- )
- // Check credential again
- if (!isValidCredential || illegalStateExceptionCaught) {
- Log.w(TAG, "generateChallenge, invalid Credential or IllegalStateException")
- scope.launch {
- _generateChallengeFailedFlow.emit(true)
- }
- }
- }
- }
- }
- challengeGenerator.generateChallenge(userId)
- }
-
- private val isValidCredential: Boolean
- get() = !isUnspecifiedPassword && credentialModel.isValidToken
-
- private val isUnspecifiedPassword: Boolean
- get() = lockPatternUtils.getActivePasswordQuality(userId) == PASSWORD_QUALITY_UNSPECIFIED
-
- /**
- * Handle activity result from ChooseLockGeneric, ConfirmLockPassword, or ConfirmLockPattern
- * @param isChooseLock true if result is coming from ChooseLockGeneric. False if result is
- * coming from ConfirmLockPassword or ConfirmLockPattern
- * @param result activity result
- * @return if it is a valid result and viewModel is generating challenge
- */
- fun generateChallengeAsCredentialActivityResult(
- isChooseLock: Boolean,
- result: ActivityResult,
- scope: CoroutineScope
- ): Boolean {
- if ((isChooseLock && result.resultCode == ChooseLockPattern.RESULT_FINISHED) ||
- (!isChooseLock && result.resultCode == Activity.RESULT_OK)) {
- result.data?.let {
- val gkPwHandle = it.getLongExtra(
- ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE,
- CredentialModel.INVALID_GK_PW_HANDLE
- )
- // Revoke self requested GkPwHandle because it shall only used once inside this
- // activity lifecycle.
- generateChallenge(gkPwHandle, true, scope)
- return true
- }
- }
- return false
- }
-
- val userId: Int
- get() = credentialModel.userId
-
- val token: ByteArray?
- get() = credentialModel.token
-
- @Throws(IllegalStateException::class)
- private fun requestGatekeeperHat(gkPwHandle: Long, challenge: Long, userId: Int): ByteArray? {
- val response = lockPatternUtils
- .verifyGatekeeperPasswordHandle(gkPwHandle, challenge, userId)
- if (!response.isMatched) {
- throw GatekeeperCredentialNotMatchException("Unable to request Gatekeeper HAT")
- }
- return response.gatekeeperHAT
- }
-
- /** Create Intent for choosing lock */
- fun createChooseLockIntent(
- context: Context, isSuw: Boolean,
- suwExtras: Bundle
- ): Intent {
- val intent = BiometricUtils.getChooseLockIntent(
- context, isSuw,
- suwExtras
- )
- intent.putExtra(
- ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS,
- true
- )
- intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE, true)
- intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, true)
- if (credentialModel.isValidUserId) {
- intent.putExtra(Intent.EXTRA_USER_ID, credentialModel.userId)
- }
- return intent
- }
-
- /** Create ConfirmLockLauncher */
- fun createConfirmLockLauncher(
- activity: Activity,
- requestCode: Int, title: String
- ): ChooseLockSettingsHelper {
- val builder = ChooseLockSettingsHelper.Builder(activity)
- builder.setRequestCode(requestCode)
- .setTitle(title)
- .setRequestGatekeeperPasswordHandle(true)
- .setForegroundOnly(true)
- .setReturnCredentials(true)
- if (credentialModel.isValidUserId) {
- builder.setUserId(credentialModel.userId)
- }
- return builder.build()
- }
-
- companion object {
- private const val TAG = "AutoCredentialViewModel"
- }
-}
-
-enum class CredentialAction {
-
- CREDENTIAL_VALID,
-
- /** Valid credential, activity does nothing. */
- IS_GENERATING_CHALLENGE,
-
- /** This credential looks good, but still need to run generateChallenge(). */
- FAIL_NEED_TO_CHOOSE_LOCK,
-
- /** Need activity to run confirm lock */
- FAIL_NEED_TO_CONFIRM_LOCK
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModel.java
deleted file mode 100644
index 7dc1328..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModel.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import android.content.res.Configuration;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-import androidx.lifecycle.ViewModel;
-
-import com.android.systemui.unfold.compat.ScreenSizeFoldProvider;
-import com.android.systemui.unfold.updates.FoldProvider;
-
-import java.util.concurrent.Executor;
-
-/**
- * ViewModel explaining the fingerprint sensor location for fingerprint enrollment.
- */
-public class DeviceFoldedViewModel extends ViewModel {
-
- private static final String TAG = "DeviceFoldedViewModel";
-
- @NonNull private final MutableLiveData<Boolean> mLiveData =
- new MutableLiveData<>(null);
-
- private final ScreenSizeFoldProvider mScreenSizeFoldProvider;
- private final FoldProvider.FoldCallback mIsFoldedCallback = isFolded -> {
- Log.d(TAG, "onFoldUpdated= " + isFolded);
- mLiveData.postValue(isFolded);
- };
-
- public DeviceFoldedViewModel(@NonNull ScreenSizeFoldProvider screenSizeFoldProvider,
- @NonNull Executor executor) {
- super();
- mScreenSizeFoldProvider = screenSizeFoldProvider;
- mScreenSizeFoldProvider.registerCallback(mIsFoldedCallback, executor);
- }
-
- /**
- * Calls this method when activity gets configuration change
- */
- public void onConfigurationChanged(@NonNull Configuration newConfig) {
- mScreenSizeFoldProvider.onConfigurationChange(newConfig);
- }
-
- /**
- * Returns FoldedLiveData
- */
- public LiveData<Boolean> getLiveData() {
- return mLiveData;
- }
-
- @Override
- protected void onCleared() {
- mScreenSizeFoldProvider.unregisterCallback(mIsFoldedCallback);
- super.onCleared();
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModel.java
deleted file mode 100644
index 07fe275..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModel.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static android.hardware.display.DisplayManager.DisplayListener;
-
-import android.app.Application;
-import android.hardware.display.DisplayManager;
-import android.util.Log;
-import android.view.DisplayInfo;
-import android.view.Surface;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-/**
- * ViewModel explaining the fingerprint sensor location for fingerprint enrollment.
- */
-public class DeviceRotationViewModel extends AndroidViewModel {
-
- private static final boolean DEBUG = false;
- private static final String TAG = "DeviceRotationViewModel";
-
- private final DisplayManager mDisplayManager;
- private final boolean mIsReverseDefaultRotation;
- @NonNull private final DisplayInfo mDisplayInfo = new DisplayInfo();
-
- /** {@link android.hardware.display.DisplayManager} is a final class, set this member visibility
- * to 'protected' for testing
- */
- @VisibleForTesting
- protected final DisplayListener mDisplayListener = new DisplayListener() {
- @Override
- public void onDisplayAdded(int displayId) {
- }
-
- @Override
- public void onDisplayRemoved(int displayId) {
- }
-
- @Override
- public void onDisplayChanged(int displayId) {
- final int rotation = getRotation();
- Log.d(TAG, "onDisplayChanged(" + displayId + "), rotation:" + rotation);
- mLiveData.postValue(rotation);
- }
- };
-
- @NonNull private final MutableLiveData<Integer> mLiveData = new MutableLiveData<>();
-
- public DeviceRotationViewModel(@NonNull Application application) {
- super(application);
- mDisplayManager = application.getSystemService(DisplayManager.class);
- mDisplayManager.registerDisplayListener(mDisplayListener,
- application.getMainThreadHandler());
- mIsReverseDefaultRotation = application.getResources().getBoolean(
- com.android.internal.R.bool.config_reverseDefaultRotation);
- }
-
- /**
- * Returns current rotation.
- *
- * {@link android.view.Display} is a final class, set this method visibility to "protected" for
- * inheriting it in test
- */
- @VisibleForTesting
- @Surface.Rotation
- protected int getRotation() {
- getApplication().getDisplay().getDisplayInfo(mDisplayInfo);
- if (mIsReverseDefaultRotation) {
- return (mDisplayInfo.rotation + 1) % 4;
- } else {
- return mDisplayInfo.rotation;
- }
- }
-
- /**
- * Returns RotationLiveData
- */
- public LiveData<Integer> getLiveData() {
- final Integer lastRotation = mLiveData.getValue();
- @Surface.Rotation int newRotation = getRotation();
- if (lastRotation == null || lastRotation != newRotation) {
- Log.d(TAG, "getLiveData, update rotation from " + lastRotation + " to " + newRotation);
- mLiveData.setValue(newRotation);
- }
- return mLiveData;
- }
-
- @Override
- protected void onCleared() {
- mDisplayManager.unregisterDisplayListener(mDisplayListener);
- super.onCleared();
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
deleted file mode 100644
index eba6a15..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import android.annotation.IntDef;
-import android.app.Application;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.os.VibrationAttributes;
-import android.os.VibrationEffect;
-import android.os.Vibrator;
-import android.util.Log;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * ViewModel explaining the fingerprint enrolling page
- */
-public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
-
- private static final String TAG = FingerprintEnrollEnrollingViewModel.class.getSimpleName();
- private static final boolean DEBUG = false;
-
- private static final VibrationEffect VIBRATE_EFFECT_ERROR =
- VibrationEffect.createWaveform(new long[]{0, 5, 55, 60}, -1);
- private static final VibrationAttributes FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES =
- VibrationAttributes.createForUsage(VibrationAttributes.USAGE_ACCESSIBILITY);
-
- /**
- * Enrolling finished
- */
- public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE = 0;
-
- /**
- * Icon touch dialog show
- */
- public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG = 1;
-
- /**
- * Has got latest cancelled event due to user skip
- */
- public static final int FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP = 2;
-
- /**
- * Has got latest cancelled event due to back key
- */
- public static final int FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED = 3;
-
- @IntDef(prefix = { "FINGERPRINT_ENROLL_ENROLLING_ACTION_" }, value = {
- FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE,
- FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG,
- FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP
- })
- @Retention(RetentionPolicy.SOURCE)
- public @interface FingerprintEnrollEnrollingAction {}
-
- private final int mUserId;
- private boolean mOnBackPressed;
- private boolean mOnSkipPressed;
- @NonNull private final FingerprintRepository mFingerprintRepository;
- private final AccessibilityManager mAccessibilityManager;
- private final Vibrator mVibrator;
-
- private final MutableLiveData<Integer> mActionLiveData = new MutableLiveData<>();
-
- public FingerprintEnrollEnrollingViewModel(
- @NonNull Application application,
- int userId,
- @NonNull FingerprintRepository fingerprintRepository
- ) {
- super(application);
- mUserId = userId;
- mFingerprintRepository = fingerprintRepository;
- mAccessibilityManager = application.getSystemService(AccessibilityManager.class);
- mVibrator = application.getSystemService(Vibrator.class);
- }
-
- public LiveData<Integer> getActionLiveData() {
- return mActionLiveData;
- }
-
- /**
- * Clears action live data
- */
- public void clearActionLiveData() {
- mActionLiveData.setValue(null);
- }
-
- public boolean getOnSkipPressed() {
- return mOnSkipPressed;
- }
-
- /**
- * User clicks skip button
- */
- public void setOnSkipPressed() {
- mOnSkipPressed = true;
- }
-
- /**
- * Enrolling is cancelled because user clicks skip
- */
- public void onCancelledDueToOnSkipPressed() {
- final int action = FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
- if (DEBUG) {
- Log.d(TAG, "onSkipButtonClick, post action " + action);
- }
- mOnSkipPressed = false;
- mActionLiveData.postValue(action);
- }
-
- /**
- * Is enrolling finished
- */
- public void onEnrollingDone() {
- final int action = FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE;
- if (DEBUG) {
- Log.d(TAG, "onEnrollingDone, post action " + action);
- }
- mActionLiveData.postValue(action);
- }
-
- public boolean getOnBackPressed() {
- return mOnBackPressed;
- }
-
- /**
- * Back key is pressed.
- */
- public void setOnBackPressed() {
- mOnBackPressed = true;
- }
-
- /**
- * Enrollment is cancelled because back key is pressed.
- */
- public void onCancelledDueToOnBackPressed() {
- final int action = FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED;
- if (DEBUG) {
- Log.d(TAG, "onCancelledEventReceivedAfterOnBackPressed, post action " + action);
- }
- mOnBackPressed = false;
- mActionLiveData.postValue(action);
- }
-
- /**
- * Icon touch dialog show
- */
- public void showIconTouchDialog() {
- final int action = FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
- if (DEBUG) {
- Log.d(TAG, "onIconTouchDialogShow, post action " + action);
- }
- mActionLiveData.postValue(action);
- }
-
- /**
- * get enroll stage threshold
- */
- public float getEnrollStageThreshold(int index) {
- return mFingerprintRepository.getEnrollStageThreshold(index);
- }
-
- /**
- * Get enroll stage count
- */
- public int getEnrollStageCount() {
- return mFingerprintRepository.getEnrollStageCount();
- }
-
- /**
- * Requests interruption of the accessibility feedback from all accessibility services.
- */
- public void clearTalkback() {
- mAccessibilityManager.interrupt();
- }
-
- /**
- * Returns if the {@link AccessibilityManager} is enabled.
- *
- * @return True if this {@link AccessibilityManager} is enabled, false otherwise.
- */
- public boolean isAccessibilityEnabled() {
- return mAccessibilityManager.isEnabled();
- }
-
- /**
- * Sends an {@link AccessibilityEvent}.
- */
- public void sendAccessibilityEvent(CharSequence announcement) {
- AccessibilityEvent e = AccessibilityEvent.obtain();
- e.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
- e.setClassName(getClass().getName());
- e.setPackageName(getApplication().getPackageName());
- e.getText().add(announcement);
- mAccessibilityManager.sendAccessibilityEvent(e);
- }
-
- /**
- * Returns if the touch exploration in the system is enabled.
- *
- * @return True if touch exploration is enabled, false otherwise.
- */
- public boolean isTouchExplorationEnabled() {
- return mAccessibilityManager.isTouchExplorationEnabled();
- }
-
- /**
- * Like {@link #vibrate(VibrationEffect, VibrationAttributes)}, but allows the
- * caller to specify the vibration is owned by someone else and set a reason for vibration.
- */
- public void vibrateError(String reason) {
- mVibrator.vibrate(mUserId, getApplication().getOpPackageName(),
- VIBRATE_EFFECT_ERROR, reason, FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES);
- }
-
- /**
- * Gets the first FingerprintSensorPropertiesInternal from FingerprintManager
- */
- @Nullable
- public FingerprintSensorPropertiesInternal getFirstFingerprintSensorPropertiesInternal() {
- return mFingerprintRepository.getFirstFingerprintSensorPropertiesInternal();
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModel.kt
deleted file mode 100644
index b154fe7..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.android.settings.biometrics2.ui.viewmodel
-
-import android.app.Application
-import androidx.lifecycle.AndroidViewModel
-import kotlinx.atomicfu.AtomicBoolean
-import kotlinx.atomicfu.atomic
-import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.flow.SharedFlow
-import kotlinx.coroutines.flow.asSharedFlow
-
-class FingerprintEnrollErrorDialogViewModel(
- application: Application,
- val isSuw: Boolean
-): AndroidViewModel(application) {
-
- private val _isDialogShown: AtomicBoolean = atomic(false)
- val isDialogShown: Boolean
- get() = _isDialogShown.value
-
- private val _newDialogFlow = MutableSharedFlow<Int>()
- val newDialogFlow: SharedFlow<Int>
- get() = _newDialogFlow.asSharedFlow()
-
- private val _triggerRetryFlow = MutableSharedFlow<Any>()
- val triggerRetryFlow: SharedFlow<Any>
- get() = _triggerRetryFlow.asSharedFlow()
-
- private val _setResultFlow = MutableSharedFlow<FingerprintErrorDialogSetResultAction>()
- val setResultFlow: SharedFlow<FingerprintErrorDialogSetResultAction>
- get() = _setResultFlow.asSharedFlow()
-
- suspend fun newDialog(errorMsgId: Int) {
- _isDialogShown.compareAndSet(expect = false, update = true)
- _newDialogFlow.emit(errorMsgId)
- }
-
- suspend fun triggerRetry() {
- _isDialogShown.compareAndSet(expect = true, update = false)
- _triggerRetryFlow.emit(Any())
- }
-
- suspend fun setResultAndFinish(action: FingerprintErrorDialogSetResultAction) {
- _isDialogShown.compareAndSet(expect = true, update = false)
- _setResultFlow.emit(action)
- }
-}
-
-enum class FingerprintErrorDialogSetResultAction {
- FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH,
- FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModel.java
deleted file mode 100644
index 00c67c4..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModel.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import android.annotation.IntDef;
-import android.app.Application;
-import android.util.Log;
-import android.view.accessibility.AccessibilityManager;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * ViewModel explaining the fingerprint sensor location for fingerprint enrollment.
- */
-public class FingerprintEnrollFindSensorViewModel extends AndroidViewModel {
-
- private static final boolean DEBUG = false;
- private static final String TAG = "FingerprintEnrollFindSensorViewModel";
-
- /**
- * User clicks 'Skip' button on this page in Settings
- */
- public static final int FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP = 0;
-
- /**
- * User clicks 'Skip' button on this page in SetupWizard flow
- */
- public static final int FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG = 1;
-
- /**
- * User clicks 'Start' button on this page
- */
- public static final int FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START = 2;
-
- @IntDef(prefix = { "FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_" }, value = {
- FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP,
- FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG,
- FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START
- })
- @Retention(RetentionPolicy.SOURCE)
- public @interface FingerprintEnrollFindSensorAction {}
-
- private final AccessibilityManager mAccessibilityManager;
-
- private final boolean mIsSuw;
- @NonNull private final MutableLiveData<Integer> mActionLiveData = new MutableLiveData<>();
-
- public FingerprintEnrollFindSensorViewModel(@NonNull Application application, boolean isSuw) {
- super(application);
- mAccessibilityManager = application.getSystemService(AccessibilityManager.class);
- mIsSuw = isSuw;
- }
-
- /**
- * Returns action live data that user chooses
- */
- public LiveData<Integer> getActionLiveData() {
- return mActionLiveData;
- }
-
- /**
- * Clear ActionLiveData to prevent get obsolete data
- */
- public void clearActionLiveData() {
- mActionLiveData.setValue(null);
- }
-
- /**
- * User clicks skip button on dialog
- */
- public void onSkipDialogButtonClick() {
- final int action = FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP;
- if (DEBUG) {
- Log.d(TAG, "onSkipDialogButtonClick, post " + action);
- }
- mActionLiveData.postValue(action);
- }
-
- /**
- * User clicks skip button
- */
- public void onSkipButtonClick() {
- final int action = mIsSuw
- ? FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG
- : FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP;
- if (DEBUG) {
- Log.d(TAG, "onSkipButtonClick, post action " + action);
- }
- mActionLiveData.postValue(action);
- }
-
- /**
- * User clicks start button
- */
- public void onStartButtonClick() {
- final int action = FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START;
- if (DEBUG) {
- Log.d(TAG, "onStartButtonClick, post action " + action);
- }
- mActionLiveData.postValue(action);
- }
-
- /**
- * Returns the info about accessibility is enabled or not
- */
- public boolean isAccessibilityEnabled() {
- return mAccessibilityManager.isEnabled();
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModel.java
deleted file mode 100644
index ae67f74..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModel.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import android.annotation.IntDef;
-import android.app.Application;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * Finish ViewModel handles the state of the fingerprint renroll final stage
- */
-public class FingerprintEnrollFinishViewModel extends AndroidViewModel {
-
- private static final String TAG = FingerprintEnrollFinishViewModel.class.getSimpleName();
- private static final boolean DEBUG = false;
-
- /**
- * User clicks "Add" button
- */
- public static final int FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK = 0;
-
- /**
- * User clicks "Next" button
- */
- public static final int FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK = 1;
-
- @IntDef(prefix = { "FINGERPRINT_ENROLL_FINISH_ACTION_" }, value = {
- FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK,
- FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK
- })
- @Retention(RetentionPolicy.SOURCE)
- public @interface FingerprintEnrollFinishAction {}
-
- @NonNull private final FingerprintRepository mFingerprintRepository;
- @NonNull private final EnrollmentRequest mRequest;
- private final int mUserId;
-
- private final MutableLiveData<Integer> mActionLiveData = new MutableLiveData<>();
-
- public FingerprintEnrollFinishViewModel(@NonNull Application application, int userId,
- @NonNull EnrollmentRequest request,
- @NonNull FingerprintRepository fingerprintRepository) {
- super(application);
- mUserId = userId;
- mRequest = request;
- mFingerprintRepository = fingerprintRepository;
- }
-
- @NonNull
- public EnrollmentRequest getRequest() {
- return mRequest;
- }
-
- /**
- * The first sensor type is Side fps sensor or not
- */
- public boolean canAssumeSfps() {
- return mFingerprintRepository.canAssumeSfps();
- }
-
- /**
- * Device allows user to enroll another fingerprint or not.
- */
- public boolean isAnotherFingerprintEnrollable() {
- return mFingerprintRepository.getNumOfEnrolledFingerprintsSize(mUserId)
- < mFingerprintRepository.getMaxFingerprints();
- }
-
- /**
- * Clear action LiveData
- */
- public void clearActionLiveData() {
- mActionLiveData.setValue(null);
- }
-
- /**
- * Get action LiveData
- */
- public LiveData<Integer> getActionLiveData() {
- return mActionLiveData;
- }
-
- /**
- * Handle add button Click
- */
- public void onAddButtonClick() {
- final int action = FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK;
- if (DEBUG) {
- Log.d(TAG, "onAddButtonClick post(" + action + ")");
- }
- mActionLiveData.postValue(action);
- }
-
- /**
- * Handle next button Click
- */
- public void onNextButtonClick() {
- final int action = FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK;
- if (DEBUG) {
- Log.d(TAG, "onNextButtonClick post(" + action + ")");
- }
- mActionLiveData.postValue(action);
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.kt
deleted file mode 100644
index 98137b4..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.kt
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.viewmodel
-
-import android.app.Application
-import android.util.Log
-import androidx.lifecycle.AndroidViewModel
-import com.android.settings.biometrics2.data.repository.FingerprintRepository
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.CONTINUE_ENROLL
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.DONE_AND_FINISH
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.SKIP_OR_CANCEL
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.SharedFlow
-import kotlinx.coroutines.flow.asSharedFlow
-import kotlinx.coroutines.flow.combine
-import kotlinx.coroutines.launch
-
-/** Fingerprint intro onboarding page view model implementation */
-class FingerprintEnrollIntroViewModel(
- application: Application,
- private val fingerprintRepository: FingerprintRepository,
- val request: EnrollmentRequest,
- private val userId: Int
-) : AndroidViewModel(application) {
-
- /** User's action flow (like clicking Agree, Skip, or Done) */
- private val _actionFlow = MutableSharedFlow<FingerprintEnrollIntroAction>()
- val actionFlow: SharedFlow<FingerprintEnrollIntroAction>
- get() = _actionFlow.asSharedFlow()
-
- private fun getEnrollableStatus(): FingerprintEnrollable {
- val num = fingerprintRepository.getNumOfEnrolledFingerprintsSize(userId)
- val max =
- if (request.isSuw && !request.isAfterSuwOrSuwSuggestedAction)
- fingerprintRepository.getMaxFingerprintsInSuw(
- getApplication<Application>().resources
- )
- else
- fingerprintRepository.maxFingerprints
- return if (num >= max)
- FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
- else
- FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK
- }
-
- private val hasScrolledToBottomFlow = MutableStateFlow(HAS_SCROLLED_TO_BOTTOM_DEFAULT)
- private val enrollableStatusFlow = MutableStateFlow(getEnrollableStatus())
-
- /** Enrollable status and hasScrollToBottom live data */
- val pageStatusFlow: Flow<FingerprintEnrollIntroStatus> =
- hasScrolledToBottomFlow.combine(enrollableStatusFlow) {
- hasScrolledToBottom: Boolean, enrollableStatus: FingerprintEnrollable ->
- FingerprintEnrollIntroStatus(hasScrolledToBottom, enrollableStatus)
- }
-
- fun updateEnrollableStatus(scope: CoroutineScope) {
- scope.launch {
- enrollableStatusFlow.emit(getEnrollableStatus())
- }
- }
-
- /** The first sensor type is UDFPS sensor or not */
- val canAssumeUdfps: Boolean
- get() = fingerprintRepository.canAssumeUdfps()
-
- /** Update onboarding intro page has scrolled to bottom */
- fun setHasScrolledToBottom(value: Boolean, scope: CoroutineScope) {
- scope.launch {
- hasScrolledToBottomFlow.emit(value)
- }
- }
-
- /** Get parental consent required or not during enrollment process */
- val isParentalConsentRequired: Boolean
- get() = fingerprintRepository.isParentalConsentRequired(getApplication())
-
- /** Get fingerprint is disable by admin or not */
- val isBiometricUnlockDisabledByAdmin: Boolean
- get() = fingerprintRepository.isDisabledByAdmin(getApplication(), userId)
-
- /**
- * User clicks next button
- */
- fun onNextButtonClick(scope: CoroutineScope) {
- scope.launch {
- when (val status = enrollableStatusFlow.value) {
- FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX ->
- _actionFlow.emit(DONE_AND_FINISH)
-
- FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK ->
- _actionFlow.emit(CONTINUE_ENROLL)
-
- else -> Log.w(TAG, "fail to click next, enrolled:$status")
- }
- }
- }
-
- /** User clicks skip/cancel button */
- fun onSkipOrCancelButtonClick(scope: CoroutineScope) {
- scope.launch {
- _actionFlow.emit(SKIP_OR_CANCEL)
- }
- }
-
- companion object {
- private const val TAG = "FingerprintEnrollIntroViewModel"
- private const val HAS_SCROLLED_TO_BOTTOM_DEFAULT = false
- private val ENROLLABLE_STATUS_DEFAULT = FingerprintEnrollable.FINGERPRINT_ENROLLABLE_UNKNOWN
- }
-}
-
-enum class FingerprintEnrollIntroAction {
- /** User clicks 'Done' button on this page */
- DONE_AND_FINISH,
- /** User clicks 'Agree' button on this page */
- CONTINUE_ENROLL,
- /** User clicks 'Skip' button on this page */
- SKIP_OR_CANCEL
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModel.java
deleted file mode 100644
index 1cfec52..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModel.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_CANCELED;
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL;
-
-import static com.android.settings.biometrics2.ui.model.EnrollmentProgress.INITIAL_REMAINING;
-import static com.android.settings.biometrics2.ui.model.EnrollmentProgress.INITIAL_STEPS;
-
-import android.app.Application;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.hardware.fingerprint.FingerprintManager.EnrollReason;
-import android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
-import android.os.CancellationSignal;
-import android.os.SystemClock;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.settings.R;
-import com.android.settings.biometrics.fingerprint.FingerprintUpdater;
-import com.android.settings.biometrics.fingerprint.MessageDisplayController;
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress;
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage;
-
-import java.util.LinkedList;
-
-/**
- * Progress ViewModel handles the state around biometric enrollment. It manages the state of
- * enrollment throughout the activity lifecycle so the app can continue after an event like
- * rotation.
- */
-public class FingerprintEnrollProgressViewModel extends AndroidViewModel {
-
- private static final boolean DEBUG = false;
- private static final String TAG = "FingerprintEnrollProgressViewModel";
-
- private final MutableLiveData<EnrollmentProgress> mProgressLiveData = new MutableLiveData<>(
- new EnrollmentProgress(INITIAL_STEPS, INITIAL_REMAINING));
- private final MutableLiveData<EnrollmentStatusMessage> mHelpMessageLiveData =
- new MutableLiveData<>();
- private final MutableLiveData<EnrollmentStatusMessage> mErrorMessageLiveData =
- new MutableLiveData<>();
- private final MutableLiveData<Object> mCanceledSignalLiveData = new MutableLiveData<>();
- private final MutableLiveData<Boolean> mAcquireLiveData = new MutableLiveData<>();
- private final MutableLiveData<Integer> mPointerDownLiveData = new MutableLiveData<>();
- private final MutableLiveData<Integer> mPointerUpLiveData = new MutableLiveData<>();
-
- private byte[] mToken = null;
- private final int mUserId;
-
- private final FingerprintUpdater mFingerprintUpdater;
- @Nullable private CancellationSignal mCancellationSignal = null;
- @NonNull private final LinkedList<CancellationSignal> mCancelingSignalQueue =
- new LinkedList<>();
- private final EnrollmentCallback mEnrollmentCallback = new EnrollmentCallback() {
-
- @Override
- public void onEnrollmentProgress(int remaining) {
- final int currentSteps = getSteps();
- final EnrollmentProgress progress = new EnrollmentProgress(
- currentSteps == INITIAL_STEPS ? remaining : getSteps(), remaining);
- if (DEBUG) {
- Log.d(TAG, "onEnrollmentProgress(" + remaining + "), steps: " + currentSteps
- + ", post progress as " + progress);
- }
- mHelpMessageLiveData.setValue(null);
- mProgressLiveData.postValue(progress);
- }
-
- @Override
- public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
- if (DEBUG) {
- Log.d(TAG, "onEnrollmentHelp(" + helpMsgId + ", " + helpString + ")");
- }
- mHelpMessageLiveData.postValue(new EnrollmentStatusMessage(helpMsgId, helpString));
- }
-
- @Override
- public void onEnrollmentError(int errMsgId, CharSequence errString) {
- Log.d(TAG, "onEnrollmentError(" + errMsgId + ", " + errString
- + "), cancelingQueueSize:" + mCancelingSignalQueue.size());
- if (FINGERPRINT_ERROR_CANCELED == errMsgId && mCancelingSignalQueue.size() > 0) {
- mCanceledSignalLiveData.postValue(mCancelingSignalQueue.poll());
- } else {
- mErrorMessageLiveData.postValue(new EnrollmentStatusMessage(errMsgId, errString));
- }
- }
-
- @Override
- public void onAcquired(boolean isAcquiredGood) {
- mAcquireLiveData.postValue(isAcquiredGood);
- }
-
- @Override
- public void onUdfpsPointerDown(int sensorId) {
- mPointerDownLiveData.postValue(sensorId);
- }
-
- @Override
- public void onUdfpsPointerUp(int sensorId) {
- mPointerUpLiveData.postValue(sensorId);
- }
- };
-
- public FingerprintEnrollProgressViewModel(@NonNull Application application,
- @NonNull FingerprintUpdater fingerprintUpdater, int userId) {
- super(application);
- mFingerprintUpdater = fingerprintUpdater;
- mUserId = userId;
- }
-
- public void setToken(byte[] token) {
- mToken = token;
- }
-
- /**
- * clear progress
- */
- public void clearProgressLiveData() {
- mProgressLiveData.setValue(new EnrollmentProgress(INITIAL_STEPS, INITIAL_REMAINING));
- mHelpMessageLiveData.setValue(null);
- mErrorMessageLiveData.setValue(null);
- }
-
- /**
- * clear error message
- */
- public void clearErrorMessageLiveData() {
- mErrorMessageLiveData.setValue(null);
- }
-
- public LiveData<EnrollmentProgress> getProgressLiveData() {
- return mProgressLiveData;
- }
-
- public LiveData<EnrollmentStatusMessage> getHelpMessageLiveData() {
- return mHelpMessageLiveData;
- }
-
- public LiveData<EnrollmentStatusMessage> getErrorMessageLiveData() {
- return mErrorMessageLiveData;
- }
-
- public LiveData<Object> getCanceledSignalLiveData() {
- return mCanceledSignalLiveData;
- }
-
- public LiveData<Boolean> getAcquireLiveData() {
- return mAcquireLiveData;
- }
-
- public LiveData<Integer> getPointerDownLiveData() {
- return mPointerDownLiveData;
- }
-
- public LiveData<Integer> getPointerUpLiveData() {
- return mPointerUpLiveData;
- }
-
- /**
- * Starts enrollment and return latest isEnrolling() result
- */
- public Object startEnrollment(@EnrollReason int reason) {
- if (mToken == null) {
- Log.e(TAG, "Null hardware auth token for enroll");
- return null;
- }
- if (mCancellationSignal != null) {
- Log.w(TAG, "Enrolling is running, shall not start again");
- return mCancellationSignal;
- }
- if (DEBUG) {
- Log.e(TAG, "startEnrollment(" + reason + ")");
- }
-
- // Clear data
- mProgressLiveData.setValue(new EnrollmentProgress(INITIAL_STEPS, INITIAL_REMAINING));
- mHelpMessageLiveData.setValue(null);
- mErrorMessageLiveData.setValue(null);
-
- mCancellationSignal = new CancellationSignal();
-
- final Resources res = getApplication().getResources();
- if (reason == ENROLL_ENROLL
- && res.getBoolean(R.bool.enrollment_message_display_controller_flag)) {
- final EnrollmentCallback callback = new MessageDisplayController(
- getApplication().getMainThreadHandler(),
- mEnrollmentCallback,
- SystemClock.elapsedRealtimeClock(),
- res.getInteger(R.integer.enrollment_help_minimum_time_display),
- res.getInteger(R.integer.enrollment_progress_minimum_time_display),
- res.getBoolean(R.bool.enrollment_progress_priority_over_help),
- res.getBoolean(R.bool.enrollment_prioritize_acquire_messages),
- res.getInteger(R.integer.enrollment_collect_time));
- mFingerprintUpdater.enroll(mToken, mCancellationSignal, mUserId, callback, reason,
- new Intent());
- } else {
- mFingerprintUpdater.enroll(mToken, mCancellationSignal, mUserId, mEnrollmentCallback,
- reason, new Intent());
- }
- return mCancellationSignal;
- }
-
- /**
- * Cancels enrollment and return latest isEnrolling result
- */
- public boolean cancelEnrollment() {
- final CancellationSignal cancellationSignal = mCancellationSignal;
- mCancellationSignal = null;
-
- if (cancellationSignal == null) {
- Log.e(TAG, "Fail to cancel enrollment, has cancelled or not start");
- return false;
- } else {
- Log.d(TAG, "enrollment cancelled");
- }
- mCancelingSignalQueue.add(cancellationSignal);
- cancellationSignal.cancel();
-
- return true;
- }
-
- public boolean isEnrolling() {
- return (mCancellationSignal != null);
- }
-
- private int getSteps() {
- return mProgressLiveData.getValue().getSteps();
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.kt
deleted file mode 100644
index 37b0052..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.kt
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.viewmodel
-
-import android.app.Application
-import android.content.ComponentName
-import android.content.Intent
-import android.content.pm.PackageManager
-import android.os.Bundle
-import android.util.Log
-import androidx.activity.result.ActivityResult
-import androidx.lifecycle.AndroidViewModel
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.fingerprint.FingerprintEnrollFinish.FINGERPRINT_SUGGESTION_ACTIVITY
-import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction
-import com.android.settings.biometrics2.data.repository.FingerprintRepository
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest
-import kotlinx.atomicfu.AtomicBoolean
-import kotlinx.atomicfu.atomic
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.flow.SharedFlow
-import kotlinx.coroutines.flow.asSharedFlow
-import kotlinx.coroutines.launch
-
-/**
- * Fingerprint enrollment view model implementation
- */
-class FingerprintEnrollmentViewModel(
- application: Application,
- private val fingerprintRepository: FingerprintRepository,
- val request: EnrollmentRequest
-) : AndroidViewModel(application) {
-
- val isWaitingActivityResult: AtomicBoolean = atomic(false)
-
- private val _setResultFlow = MutableSharedFlow<ActivityResult>()
- val setResultFlow: SharedFlow<ActivityResult>
- get() = _setResultFlow.asSharedFlow()
-
- var isNewFingerprintAdded = false
- set(value) {
- // Only allow changing this value from false to true
- if (!field) {
- field = value
- }
- }
-
- /**
- * Get override activity result as current ViewModel status.
- *
- * FingerprintEnrollmentActivity supports user enrolls 2nd fingerprint or starts a new flow
- * through Deferred-SUW, Portal-SUW, or SUW Suggestion. Use a method to get override activity
- * result instead of putting these if-else on every setResult(), .
- */
- fun getOverrideActivityResult(
- result: ActivityResult,
- generatingChallengeExtras: Bundle?
- ): ActivityResult {
- val newResultCode = if (isNewFingerprintAdded)
- BiometricEnrollBase.RESULT_FINISHED
- else if (request.isAfterSuwOrSuwSuggestedAction)
- BiometricEnrollBase.RESULT_CANCELED
- else
- result.resultCode
-
- var newData = result.data
- if (newResultCode == BiometricEnrollBase.RESULT_FINISHED
- && generatingChallengeExtras != null
- ) {
- if (newData == null) {
- newData = Intent()
- }
- newData.putExtras(generatingChallengeExtras)
- }
- return ActivityResult(newResultCode, newData)
- }
-
- /**
- * Activity calls this method during onPause() to finish itself when back to background.
- *
- * @param isActivityFinishing Activity has called finish() or not
- * @param isChangingConfigurations Activity is finished because of configuration changed or not.
- */
- fun checkFinishActivityDuringOnPause(
- isActivityFinishing: Boolean,
- isChangingConfigurations: Boolean,
- scope: CoroutineScope
- ) {
- if (isChangingConfigurations || isActivityFinishing || request.isSuw
- || isWaitingActivityResult.value
- ) {
- return
- }
- scope.launch {
- _setResultFlow.emit(ActivityResult(BiometricEnrollBase.RESULT_TIMEOUT, null))
- }
- }
-
- /**
- * Get Suw fingerprint count extra for statistics
- */
- fun getSuwFingerprintCountExtra(userId: Int) = Bundle().also {
- it.putInt(
- SetupFingerprintEnrollIntroduction.EXTRA_FINGERPRINT_ENROLLED_COUNT,
- fingerprintRepository.getNumOfEnrolledFingerprintsSize(userId)
- )
- }
-
- /**
- * Gets the result about fingerprint enrollable
- */
- fun isMaxEnrolledReached(userId: Int): Boolean = with(fingerprintRepository) {
- maxFingerprints <= getNumOfEnrolledFingerprintsSize(userId)
- }
-
- val canAssumeUdfps: Boolean
- get() = fingerprintRepository.canAssumeUdfps()
-
- val canAssumeSfps: Boolean
- get() = fingerprintRepository.canAssumeSfps()
-
- /**
- * Update FINGERPRINT_SUGGESTION_ACTIVITY into package manager
- */
- fun updateFingerprintSuggestionEnableState(userId: Int) {
- // Only show "Add another fingerprint" if the user already enrolled one.
- // "Add fingerprint" will be shown in the main flow if the user hasn't enrolled any
- // fingerprints. If the user already added more than one fingerprint, they already know
- // to add multiple fingerprints so we don't show the suggestion.
- val state = if (fingerprintRepository.getNumOfEnrolledFingerprintsSize(userId) == 1)
- PackageManager.COMPONENT_ENABLED_STATE_ENABLED
- else
- PackageManager.COMPONENT_ENABLED_STATE_DISABLED
- getApplication<Application>().packageManager.setComponentEnabledSetting(
- ComponentName(
- getApplication(),
- FINGERPRINT_SUGGESTION_ACTIVITY
- ),
- state,
- PackageManager.DONT_KILL_APP
- )
- Log.d(TAG, "$FINGERPRINT_SUGGESTION_ACTIVITY enabled state: $state")
- }
-
- companion object {
- private const val TAG = "FingerprintEnrollmentViewModel"
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollDrawable.java b/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollDrawable.java
deleted file mode 100644
index 4b0b624..0000000
--- a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollDrawable.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.widget;
-
-import android.animation.Animator;
-import android.animation.AnimatorSet;
-import android.animation.ValueAnimator;
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.ColorFilter;
-import android.graphics.Paint;
-import android.graphics.PointF;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.ShapeDrawable;
-import android.graphics.drawable.shapes.PathShape;
-import android.hardware.fingerprint.FingerprintManager;
-import android.os.Build;
-import android.os.UserHandle;
-import android.provider.Settings;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.PathParser;
-import android.util.TypedValue;
-import android.view.accessibility.AccessibilityManager;
-import android.view.animation.AccelerateDecelerateInterpolator;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.R;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * UDFPS fingerprint drawable that is shown when enrolling
- */
-public class UdfpsEnrollDrawable extends Drawable {
- private static final String TAG = "UdfpsAnimationEnroll";
-
- private static final long TARGET_ANIM_DURATION_LONG = 800L;
- private static final long TARGET_ANIM_DURATION_SHORT = 600L;
- // 1 + SCALE_MAX is the maximum that the moving target will animate to
- private static final float SCALE_MAX = 0.25f;
- private static final float DEFAULT_STROKE_WIDTH = 3f;
- private static final float SCALE = 0.5f;
- private static final String SCALE_OVERRIDE =
- "com.android.systemui.biometrics.UdfpsEnrollHelper.scale";
- private static final String NEW_COORDS_OVERRIDE =
- "com.android.systemui.biometrics.UdfpsNewCoords";
-
- @NonNull
- private final Drawable mMovingTargetFpIcon;
- @NonNull
- private final Paint mSensorOutlinePaint;
- @NonNull
- private final Paint mBlueFill;
- @NonNull
- private final ShapeDrawable mFingerprintDrawable;
- private int mAlpha;
- private boolean mSkipDraw = false;
-
- @Nullable
- private RectF mSensorRect;
-
- // Moving target animator set
- @Nullable
- AnimatorSet mTargetAnimatorSet;
- // Moving target location
- float mCurrentX;
- float mCurrentY;
- // Moving target size
- float mCurrentScale = 1.f;
-
- @NonNull
- private final Animator.AnimatorListener mTargetAnimListener;
-
- private boolean mShouldShowTipHint = false;
- private boolean mShouldShowEdgeHint = false;
-
- private int mEnrollIcon;
- private int mMovingTargetFill;
-
- private int mTotalSteps = -1;
- private int mRemainingSteps = -1;
- private int mLocationsEnrolled = 0;
- private int mCenterTouchCount = 0;
-
- private FingerprintManager mFingerprintManager;
-
- private boolean mAccessibilityEnabled;
- private Context mContext;
- private final List<PointF> mGuidedEnrollmentPoints;
-
- UdfpsEnrollDrawable(@NonNull Context context, @Nullable AttributeSet attrs) {
- mFingerprintDrawable = defaultFactory(context);
-
- loadResources(context, attrs);
- mSensorOutlinePaint = new Paint(0 /* flags */);
- mSensorOutlinePaint.setAntiAlias(true);
- mSensorOutlinePaint.setColor(mMovingTargetFill);
- mSensorOutlinePaint.setStyle(Paint.Style.FILL);
-
- mBlueFill = new Paint(0 /* flags */);
- mBlueFill.setAntiAlias(true);
- mBlueFill.setColor(mMovingTargetFill);
- mBlueFill.setStyle(Paint.Style.FILL);
-
- mMovingTargetFpIcon = context.getResources()
- .getDrawable(R.drawable.ic_enrollment_fingerprint, null);
- mMovingTargetFpIcon.setTint(mEnrollIcon);
- mMovingTargetFpIcon.mutate();
-
- mFingerprintDrawable.setTint(mEnrollIcon);
-
- setAlpha(255);
- mTargetAnimListener = new Animator.AnimatorListener() {
- @Override
- public void onAnimationStart(Animator animation) {
- }
-
- @Override
- public void onAnimationEnd(Animator animation) {
- updateTipHintVisibility();
- }
-
- @Override
- public void onAnimationCancel(Animator animation) {
- }
-
- @Override
- public void onAnimationRepeat(Animator animation) {
- }
- };
- mContext = context;
- mFingerprintManager = context.getSystemService(FingerprintManager.class);
- final AccessibilityManager am = context.getSystemService(AccessibilityManager.class);
- mAccessibilityEnabled = am.isEnabled();
- mGuidedEnrollmentPoints = new ArrayList<>();
- initEnrollPoint(context);
- }
-
- /** The [sensorRect] coordinates for the sensor area. */
- void onSensorRectUpdated(@NonNull RectF sensorRect) {
- int margin = ((int) sensorRect.height()) / 8;
- Rect bounds = new Rect((int) (sensorRect.left) + margin, (int) (sensorRect.top) + margin,
- (int) (sensorRect.right) - margin, (int) (sensorRect.bottom) - margin);
- updateFingerprintIconBounds(bounds);
- mSensorRect = sensorRect;
- }
-
- void setShouldSkipDraw(boolean skipDraw) {
- if (mSkipDraw == skipDraw) {
- return;
- }
- mSkipDraw = skipDraw;
- invalidateSelf();
- }
-
- void updateFingerprintIconBounds(@NonNull Rect bounds) {
- mFingerprintDrawable.setBounds(bounds);
- invalidateSelf();
- mMovingTargetFpIcon.setBounds(bounds);
- invalidateSelf();
- }
-
- void onEnrollmentProgress(final int remaining, final int totalSteps) {
- if (mTotalSteps == -1) {
- mTotalSteps = totalSteps;
- }
-
- if (remaining != mRemainingSteps) {
- mLocationsEnrolled++;
- if (isCenterEnrollmentStage()) {
- mCenterTouchCount++;
- }
- }
- mRemainingSteps = remaining;
-
- if (!isCenterEnrollmentStage()) {
- if (mTargetAnimatorSet != null && mTargetAnimatorSet.isRunning()) {
- mTargetAnimatorSet.end();
- }
-
- final PointF point = getNextGuidedEnrollmentPoint();
- if (mCurrentX != point.x || mCurrentY != point.y) {
- final ValueAnimator x = ValueAnimator.ofFloat(mCurrentX, point.x);
- x.addUpdateListener(animation -> {
- mCurrentX = (float) animation.getAnimatedValue();
- invalidateSelf();
- });
-
- final ValueAnimator y = ValueAnimator.ofFloat(mCurrentY, point.y);
- y.addUpdateListener(animation -> {
- mCurrentY = (float) animation.getAnimatedValue();
- invalidateSelf();
- });
-
- final boolean isMovingToCenter = point.x == 0f && point.y == 0f;
- final long duration = isMovingToCenter
- ? TARGET_ANIM_DURATION_SHORT
- : TARGET_ANIM_DURATION_LONG;
-
- final ValueAnimator scale = ValueAnimator.ofFloat(0, (float) Math.PI);
- scale.setDuration(duration);
- scale.addUpdateListener(animation -> {
- // Grow then shrink
- mCurrentScale = 1
- + SCALE_MAX * (float) Math.sin((float) animation.getAnimatedValue());
- invalidateSelf();
- });
-
- mTargetAnimatorSet = new AnimatorSet();
-
- mTargetAnimatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
- mTargetAnimatorSet.setDuration(duration);
- mTargetAnimatorSet.addListener(mTargetAnimListener);
- mTargetAnimatorSet.playTogether(x, y, scale);
- mTargetAnimatorSet.start();
- } else {
- updateTipHintVisibility();
- }
- } else {
- updateTipHintVisibility();
- }
-
- updateEdgeHintVisibility();
- }
-
- @Override
- public void draw(@NonNull Canvas canvas) {
- if (mSkipDraw) {
- return;
- }
-
- // Draw moving target
- if (!isCenterEnrollmentStage()) {
- canvas.save();
- canvas.translate(mCurrentX, mCurrentY);
-
- if (mSensorRect != null) {
- canvas.scale(mCurrentScale, mCurrentScale,
- mSensorRect.centerX(), mSensorRect.centerY());
- canvas.drawOval(mSensorRect, mBlueFill);
- }
-
- mMovingTargetFpIcon.draw(canvas);
- canvas.restore();
- } else {
- if (mSensorRect != null) {
- canvas.drawOval(mSensorRect, mSensorOutlinePaint);
- }
- mFingerprintDrawable.draw(canvas);
- mFingerprintDrawable.setAlpha(getAlpha());
- mSensorOutlinePaint.setAlpha(getAlpha());
- }
-
- }
-
- @Override
- public void setAlpha(int alpha) {
- mAlpha = alpha;
- mFingerprintDrawable.setAlpha(alpha);
- mSensorOutlinePaint.setAlpha(alpha);
- mBlueFill.setAlpha(alpha);
- mMovingTargetFpIcon.setAlpha(alpha);
- invalidateSelf();
- }
-
- @Override
- public int getAlpha() {
- return mAlpha;
- }
-
- @Override
- public void setColorFilter(@Nullable ColorFilter colorFilter) {
- }
-
- @Override
- public int getOpacity() {
- return 0;
- }
-
- private void updateTipHintVisibility() {
- final boolean shouldShow = isTipEnrollmentStage();
- // With the new update, we will git rid of most of this code, and instead
- // we will change the fingerprint icon.
- if (mShouldShowTipHint == shouldShow) {
- return;
- }
- mShouldShowTipHint = shouldShow;
- }
-
- private void updateEdgeHintVisibility() {
- final boolean shouldShow = isEdgeEnrollmentStage();
- if (mShouldShowEdgeHint == shouldShow) {
- return;
- }
- mShouldShowEdgeHint = shouldShow;
- }
-
- private ShapeDrawable defaultFactory(Context context) {
- String fpPath = context.getResources().getString(R.string.config_udfpsIcon);
- ShapeDrawable drawable = new ShapeDrawable(
- new PathShape(PathParser.createPathFromPathData(fpPath), 72f, 72f)
- );
- drawable.mutate();
- drawable.getPaint().setStyle(Paint.Style.STROKE);
- drawable.getPaint().setStrokeCap(Paint.Cap.ROUND);
- drawable.getPaint().setStrokeWidth(DEFAULT_STROKE_WIDTH);
- return drawable;
- }
-
- private void loadResources(Context context, @Nullable AttributeSet attrs) {
- final TypedArray ta = context.obtainStyledAttributes(attrs,
- R.styleable.BiometricsEnrollView, R.attr.biometricsEnrollStyle,
- R.style.BiometricsEnrollStyle);
- mEnrollIcon = ta.getColor(R.styleable.BiometricsEnrollView_biometricsEnrollIcon, 0);
- mMovingTargetFill = ta.getColor(
- R.styleable.BiometricsEnrollView_biometricsMovingTargetFill, 0);
- ta.recycle();
- }
-
- private boolean isCenterEnrollmentStage() {
- if (mTotalSteps == -1 || mRemainingSteps == -1) {
- return true;
- }
- return mTotalSteps - mRemainingSteps < getStageThresholdSteps(mTotalSteps, 0);
- }
-
- private int getStageThresholdSteps(int totalSteps, int stageIndex) {
- return Math.round(totalSteps * mFingerprintManager.getEnrollStageThreshold(stageIndex));
- }
-
- private PointF getNextGuidedEnrollmentPoint() {
- if (mAccessibilityEnabled || !isGuidedEnrollmentStage()) {
- return new PointF(0f, 0f);
- }
-
- float scale = SCALE;
- if (Build.IS_ENG || Build.IS_USERDEBUG) {
- scale = Settings.Secure.getFloatForUser(mContext.getContentResolver(),
- SCALE_OVERRIDE, SCALE,
- UserHandle.USER_CURRENT);
- }
- final int index = mLocationsEnrolled - mCenterTouchCount;
- final PointF originalPoint = mGuidedEnrollmentPoints
- .get(index % mGuidedEnrollmentPoints.size());
- return new PointF(originalPoint.x * scale, originalPoint.y * scale);
- }
-
- private boolean isGuidedEnrollmentStage() {
- if (mAccessibilityEnabled || mTotalSteps == -1 || mRemainingSteps == -1) {
- return false;
- }
- final int progressSteps = mTotalSteps - mRemainingSteps;
- return progressSteps >= getStageThresholdSteps(mTotalSteps, 0)
- && progressSteps < getStageThresholdSteps(mTotalSteps, 1);
- }
-
- private boolean isTipEnrollmentStage() {
- if (mTotalSteps == -1 || mRemainingSteps == -1) {
- return false;
- }
- final int progressSteps = mTotalSteps - mRemainingSteps;
- return progressSteps >= getStageThresholdSteps(mTotalSteps, 1)
- && progressSteps < getStageThresholdSteps(mTotalSteps, 2);
- }
-
- private boolean isEdgeEnrollmentStage() {
- if (mTotalSteps == -1 || mRemainingSteps == -1) {
- return false;
- }
- return mTotalSteps - mRemainingSteps >= getStageThresholdSteps(mTotalSteps, 2);
- }
-
- private void initEnrollPoint(Context context) {
- // Number of pixels per mm
- float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 1,
- context.getResources().getDisplayMetrics());
- boolean useNewCoords = Settings.Secure.getIntForUser(mContext.getContentResolver(),
- NEW_COORDS_OVERRIDE, 0,
- UserHandle.USER_CURRENT) != 0;
- if (useNewCoords && (Build.IS_ENG || Build.IS_USERDEBUG)) {
- Log.v(TAG, "Using new coordinates");
- mGuidedEnrollmentPoints.add(new PointF(-0.15f * px, -1.02f * px));
- mGuidedEnrollmentPoints.add(new PointF(-0.15f * px, 1.02f * px));
- mGuidedEnrollmentPoints.add(new PointF(0.29f * px, 0.00f * px));
- mGuidedEnrollmentPoints.add(new PointF(2.17f * px, -2.35f * px));
- mGuidedEnrollmentPoints.add(new PointF(1.07f * px, -3.96f * px));
- mGuidedEnrollmentPoints.add(new PointF(-0.37f * px, -4.31f * px));
- mGuidedEnrollmentPoints.add(new PointF(-1.69f * px, -3.29f * px));
- mGuidedEnrollmentPoints.add(new PointF(-2.48f * px, -1.23f * px));
- mGuidedEnrollmentPoints.add(new PointF(-2.48f * px, 1.23f * px));
- mGuidedEnrollmentPoints.add(new PointF(-1.69f * px, 3.29f * px));
- mGuidedEnrollmentPoints.add(new PointF(-0.37f * px, 4.31f * px));
- mGuidedEnrollmentPoints.add(new PointF(1.07f * px, 3.96f * px));
- mGuidedEnrollmentPoints.add(new PointF(2.17f * px, 2.35f * px));
- mGuidedEnrollmentPoints.add(new PointF(2.58f * px, 0.00f * px));
- } else {
- Log.v(TAG, "Using old coordinates");
- mGuidedEnrollmentPoints.add(new PointF(2.00f * px, 0.00f * px));
- mGuidedEnrollmentPoints.add(new PointF(0.87f * px, -2.70f * px));
- mGuidedEnrollmentPoints.add(new PointF(-1.80f * px, -1.31f * px));
- mGuidedEnrollmentPoints.add(new PointF(-1.80f * px, 1.31f * px));
- mGuidedEnrollmentPoints.add(new PointF(0.88f * px, 2.70f * px));
- mGuidedEnrollmentPoints.add(new PointF(3.94f * px, -1.06f * px));
- mGuidedEnrollmentPoints.add(new PointF(2.90f * px, -4.14f * px));
- mGuidedEnrollmentPoints.add(new PointF(-0.52f * px, -5.95f * px));
- mGuidedEnrollmentPoints.add(new PointF(-3.33f * px, -3.33f * px));
- mGuidedEnrollmentPoints.add(new PointF(-3.99f * px, -0.35f * px));
- mGuidedEnrollmentPoints.add(new PointF(-3.62f * px, 2.54f * px));
- mGuidedEnrollmentPoints.add(new PointF(-1.49f * px, 5.57f * px));
- mGuidedEnrollmentPoints.add(new PointF(2.29f * px, 4.92f * px));
- mGuidedEnrollmentPoints.add(new PointF(3.82f * px, 1.78f * px));
- }
- }
-
-}
diff --git a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollProgressBarDrawable.java b/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollProgressBarDrawable.java
deleted file mode 100644
index 8cb4bb2..0000000
--- a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollProgressBarDrawable.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.widget;
-
-import android.animation.ValueAnimator;
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.ColorFilter;
-import android.graphics.Paint;
-import android.graphics.drawable.Drawable;
-import android.os.Process;
-import android.os.VibrationAttributes;
-import android.os.VibrationEffect;
-import android.os.Vibrator;
-import android.util.AttributeSet;
-import android.util.DisplayMetrics;
-import android.view.accessibility.AccessibilityManager;
-import android.view.animation.DecelerateInterpolator;
-import android.view.animation.Interpolator;
-import android.view.animation.OvershootInterpolator;
-
-import androidx.annotation.ColorInt;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.R;
-
-/**
- * UDFPS enrollment progress bar.
- */
-public class UdfpsEnrollProgressBarDrawable extends Drawable {
- private static final String TAG = "UdfpsProgressBar";
-
- private static final long CHECKMARK_ANIMATION_DELAY_MS = 200L;
- private static final long CHECKMARK_ANIMATION_DURATION_MS = 300L;
- private static final long FILL_COLOR_ANIMATION_DURATION_MS = 350L;
- private static final long PROGRESS_ANIMATION_DURATION_MS = 400L;
- private static final float STROKE_WIDTH_DP = 12f;
- private static final Interpolator DEACCEL = new DecelerateInterpolator();
-
- private static final VibrationEffect VIBRATE_EFFECT_ERROR =
- VibrationEffect.createWaveform(new long[]{0, 5, 55, 60}, -1);
- private static final VibrationAttributes FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES =
- VibrationAttributes.createForUsage(VibrationAttributes.USAGE_ACCESSIBILITY);
-
- private static final VibrationAttributes HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES =
- VibrationAttributes.createForUsage(VibrationAttributes.USAGE_HARDWARE_FEEDBACK);
-
- private static final VibrationEffect SUCCESS_VIBRATION_EFFECT =
- VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
-
- private final float mStrokeWidthPx;
- @ColorInt
- private final int mProgressColor;
- @ColorInt
- private final int mHelpColor;
- @ColorInt
- private final int mOnFirstBucketFailedColor;
- @NonNull
- private final Drawable mCheckmarkDrawable;
- @NonNull
- private final Interpolator mCheckmarkInterpolator;
- @NonNull
- private final Paint mBackgroundPaint;
- @VisibleForTesting
- @NonNull
- final Paint mFillPaint;
- @NonNull
- private final Vibrator mVibrator;
- @NonNull
- private final boolean mIsAccessibilityEnabled;
- @NonNull
- private final Context mContext;
-
- private boolean mAfterFirstTouch;
-
- private int mRemainingSteps = 0;
- private int mTotalSteps = 0;
- private float mProgress = 0f;
- @Nullable
- private ValueAnimator mProgressAnimator;
- @NonNull
- private final ValueAnimator.AnimatorUpdateListener mProgressUpdateListener;
-
- private boolean mShowingHelp = false;
- @Nullable
- private ValueAnimator mFillColorAnimator;
- @NonNull
- private final ValueAnimator.AnimatorUpdateListener mFillColorUpdateListener;
-
- @Nullable
- private ValueAnimator mBackgroundColorAnimator;
- @NonNull
- private final ValueAnimator.AnimatorUpdateListener mBackgroundColorUpdateListener;
-
- private boolean mComplete = false;
- private float mCheckmarkScale = 0f;
- @Nullable
- private ValueAnimator mCheckmarkAnimator;
- @NonNull
- private final ValueAnimator.AnimatorUpdateListener mCheckmarkUpdateListener;
-
- private int mMovingTargetFill;
- private int mMovingTargetFillError;
- private int mEnrollProgress;
- private int mEnrollProgressHelp;
- private int mEnrollProgressHelpWithTalkback;
-
- public UdfpsEnrollProgressBarDrawable(@NonNull Context context, @Nullable AttributeSet attrs) {
- mContext = context;
-
- loadResources(context, attrs);
- float density = context.getResources().getDisplayMetrics().densityDpi;
- mStrokeWidthPx = STROKE_WIDTH_DP * (density / DisplayMetrics.DENSITY_DEFAULT);
- mProgressColor = mEnrollProgress;
- final AccessibilityManager am = context.getSystemService(AccessibilityManager.class);
- mIsAccessibilityEnabled = am.isTouchExplorationEnabled();
- mOnFirstBucketFailedColor = mMovingTargetFillError;
- if (!mIsAccessibilityEnabled) {
- mHelpColor = mEnrollProgressHelp;
- } else {
- mHelpColor = mEnrollProgressHelpWithTalkback;
- }
- mCheckmarkDrawable = context.getDrawable(R.drawable.udfps_enroll_checkmark);
- mCheckmarkDrawable.mutate();
- mCheckmarkInterpolator = new OvershootInterpolator();
-
- mBackgroundPaint = new Paint();
- mBackgroundPaint.setStrokeWidth(mStrokeWidthPx);
- mBackgroundPaint.setColor(mMovingTargetFill);
- mBackgroundPaint.setAntiAlias(true);
- mBackgroundPaint.setStyle(Paint.Style.STROKE);
- mBackgroundPaint.setStrokeCap(Paint.Cap.ROUND);
-
- // Progress fill should *not* use the extracted system color.
- mFillPaint = new Paint();
- mFillPaint.setStrokeWidth(mStrokeWidthPx);
- mFillPaint.setColor(mProgressColor);
- mFillPaint.setAntiAlias(true);
- mFillPaint.setStyle(Paint.Style.STROKE);
- mFillPaint.setStrokeCap(Paint.Cap.ROUND);
-
- mVibrator = mContext.getSystemService(Vibrator.class);
-
- mProgressUpdateListener = animation -> {
- mProgress = (float) animation.getAnimatedValue();
- invalidateSelf();
- };
-
- mFillColorUpdateListener = animation -> {
- mFillPaint.setColor((int) animation.getAnimatedValue());
- invalidateSelf();
- };
-
- mCheckmarkUpdateListener = animation -> {
- mCheckmarkScale = (float) animation.getAnimatedValue();
- invalidateSelf();
- };
-
- mBackgroundColorUpdateListener = animation -> {
- mBackgroundPaint.setColor((int) animation.getAnimatedValue());
- invalidateSelf();
- };
- }
-
- void onEnrollmentProgress(final int remaining, final int totalSteps) {
- mAfterFirstTouch = true;
- updateState(remaining, totalSteps, false /* showingHelp */);
- }
-
- void onEnrollmentHelp(int remaining, int totalSteps) {
- updateState(remaining, totalSteps, true /* showingHelp */);
- }
-
- void onLastStepAcquired() {
- updateState(0, mTotalSteps, false /* showingHelp */);
- }
-
- private void updateState(int remainingSteps, int totalSteps, boolean showingHelp) {
- updateProgress(remainingSteps, totalSteps, showingHelp);
- updateFillColor(showingHelp);
- }
-
- private void updateProgress(int remainingSteps, int totalSteps, boolean showingHelp) {
- if (mRemainingSteps == remainingSteps && mTotalSteps == totalSteps) {
- return;
- }
-
- if (mShowingHelp) {
- if (mVibrator != null && mIsAccessibilityEnabled) {
- mVibrator.vibrate(Process.myUid(), mContext.getOpPackageName(),
- VIBRATE_EFFECT_ERROR, getClass().getSimpleName() + "::onEnrollmentHelp",
- FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES);
- }
- } else {
- // If the first touch is an error, remainingSteps will be -1 and the callback
- // doesn't come from onEnrollmentHelp. If we are in the accessibility flow,
- // we still would like to vibrate.
- if (mVibrator != null) {
- if (remainingSteps == -1 && mIsAccessibilityEnabled) {
- mVibrator.vibrate(Process.myUid(), mContext.getOpPackageName(),
- VIBRATE_EFFECT_ERROR,
- getClass().getSimpleName() + "::onFirstTouchError",
- FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES);
- } else if (remainingSteps != -1 && !mIsAccessibilityEnabled) {
- mVibrator.vibrate(Process.myUid(),
- mContext.getOpPackageName(),
- SUCCESS_VIBRATION_EFFECT,
- getClass().getSimpleName() + "::OnEnrollmentProgress",
- HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES);
- }
- }
- }
-
- mShowingHelp = showingHelp;
- mRemainingSteps = remainingSteps;
- mTotalSteps = totalSteps;
-
- final int progressSteps = Math.max(0, totalSteps - remainingSteps);
-
- // If needed, add 1 to progress and total steps to account for initial touch.
- final int adjustedSteps = mAfterFirstTouch ? progressSteps + 1 : progressSteps;
- final int adjustedTotal = mAfterFirstTouch ? mTotalSteps + 1 : mTotalSteps;
-
- final float targetProgress = Math.min(1f, (float) adjustedSteps / (float) adjustedTotal);
-
- if (mProgressAnimator != null && mProgressAnimator.isRunning()) {
- mProgressAnimator.cancel();
- }
-
- mProgressAnimator = ValueAnimator.ofFloat(mProgress, targetProgress);
- mProgressAnimator.setDuration(PROGRESS_ANIMATION_DURATION_MS);
- mProgressAnimator.addUpdateListener(mProgressUpdateListener);
- mProgressAnimator.start();
-
- if (remainingSteps == 0) {
- startCompletionAnimation();
- } else if (remainingSteps > 0) {
- rollBackCompletionAnimation();
- }
- }
-
- private void animateBackgroundColor() {
- if (mBackgroundColorAnimator != null && mBackgroundColorAnimator.isRunning()) {
- mBackgroundColorAnimator.end();
- }
- mBackgroundColorAnimator = ValueAnimator.ofArgb(mBackgroundPaint.getColor(),
- mOnFirstBucketFailedColor);
- mBackgroundColorAnimator.setDuration(FILL_COLOR_ANIMATION_DURATION_MS);
- mBackgroundColorAnimator.setRepeatCount(1);
- mBackgroundColorAnimator.setRepeatMode(ValueAnimator.REVERSE);
- mBackgroundColorAnimator.setInterpolator(DEACCEL);
- mBackgroundColorAnimator.addUpdateListener(mBackgroundColorUpdateListener);
- mBackgroundColorAnimator.start();
- }
-
- private void updateFillColor(boolean showingHelp) {
- if (!mAfterFirstTouch && showingHelp) {
- // If we are on the first touch, animate the background color
- // instead of the progress color.
- animateBackgroundColor();
- return;
- }
-
- if (mFillColorAnimator != null && mFillColorAnimator.isRunning()) {
- mFillColorAnimator.end();
- }
-
- @ColorInt final int targetColor = showingHelp ? mHelpColor : mProgressColor;
- mFillColorAnimator = ValueAnimator.ofArgb(mFillPaint.getColor(), targetColor);
- mFillColorAnimator.setDuration(FILL_COLOR_ANIMATION_DURATION_MS);
- mFillColorAnimator.setRepeatCount(1);
- mFillColorAnimator.setRepeatMode(ValueAnimator.REVERSE);
- mFillColorAnimator.setInterpolator(DEACCEL);
- mFillColorAnimator.addUpdateListener(mFillColorUpdateListener);
- mFillColorAnimator.start();
- }
-
- private void startCompletionAnimation() {
- if (mComplete) {
- return;
- }
- mComplete = true;
-
- if (mCheckmarkAnimator != null && mCheckmarkAnimator.isRunning()) {
- mCheckmarkAnimator.cancel();
- }
-
- mCheckmarkAnimator = ValueAnimator.ofFloat(mCheckmarkScale, 1f);
- mCheckmarkAnimator.setStartDelay(CHECKMARK_ANIMATION_DELAY_MS);
- mCheckmarkAnimator.setDuration(CHECKMARK_ANIMATION_DURATION_MS);
- mCheckmarkAnimator.setInterpolator(mCheckmarkInterpolator);
- mCheckmarkAnimator.addUpdateListener(mCheckmarkUpdateListener);
- mCheckmarkAnimator.start();
- }
-
- private void rollBackCompletionAnimation() {
- if (!mComplete) {
- return;
- }
- mComplete = false;
-
- // Adjust duration based on how much of the completion animation has played.
- final float animatedFraction = mCheckmarkAnimator != null
- ? mCheckmarkAnimator.getAnimatedFraction()
- : 0f;
- final long durationMs = Math.round(CHECKMARK_ANIMATION_DELAY_MS * animatedFraction);
-
- if (mCheckmarkAnimator != null && mCheckmarkAnimator.isRunning()) {
- mCheckmarkAnimator.cancel();
- }
-
- mCheckmarkAnimator = ValueAnimator.ofFloat(mCheckmarkScale, 0f);
- mCheckmarkAnimator.setDuration(durationMs);
- mCheckmarkAnimator.addUpdateListener(mCheckmarkUpdateListener);
- mCheckmarkAnimator.start();
- }
-
- private void loadResources(Context context, @Nullable AttributeSet attrs) {
- final TypedArray ta = context.obtainStyledAttributes(attrs,
- R.styleable.BiometricsEnrollView, R.attr.biometricsEnrollStyle,
- R.style.BiometricsEnrollStyle);
- mMovingTargetFill = ta.getColor(
- R.styleable.BiometricsEnrollView_biometricsMovingTargetFill, 0);
- mMovingTargetFillError = ta.getColor(
- R.styleable.BiometricsEnrollView_biometricsMovingTargetFillError, 0);
- mEnrollProgress = ta.getColor(
- R.styleable.BiometricsEnrollView_biometricsEnrollProgress, 0);
- mEnrollProgressHelp = ta.getColor(
- R.styleable.BiometricsEnrollView_biometricsEnrollProgressHelp, 0);
- mEnrollProgressHelpWithTalkback = ta.getColor(
- R.styleable.BiometricsEnrollView_biometricsEnrollProgressHelpWithTalkback, 0);
- ta.recycle();
- }
-
- @Override
- public void draw(@NonNull Canvas canvas) {
- canvas.save();
-
- // Progress starts from the top, instead of the right
- canvas.rotate(-90f, getBounds().centerX(), getBounds().centerY());
-
- final float halfPaddingPx = mStrokeWidthPx / 2f;
-
- if (mProgress < 1f) {
- // Draw the background color of the progress circle.
- canvas.drawArc(
- halfPaddingPx,
- halfPaddingPx,
- getBounds().right - halfPaddingPx,
- getBounds().bottom - halfPaddingPx,
- 0f /* startAngle */,
- 360f /* sweepAngle */,
- false /* useCenter */,
- mBackgroundPaint);
- }
-
- if (mProgress > 0f) {
- // Draw the filled portion of the progress circle.
- canvas.drawArc(
- halfPaddingPx,
- halfPaddingPx,
- getBounds().right - halfPaddingPx,
- getBounds().bottom - halfPaddingPx,
- 0f /* startAngle */,
- 360f * mProgress /* sweepAngle */,
- false /* useCenter */,
- mFillPaint);
- }
-
- canvas.restore();
-
- if (mCheckmarkScale > 0f) {
- final float offsetScale = (float) Math.sqrt(2) / 2f;
- final float centerXOffset = (getBounds().width() - mStrokeWidthPx) / 2f * offsetScale;
- final float centerYOffset = (getBounds().height() - mStrokeWidthPx) / 2f * offsetScale;
- final float centerX = getBounds().centerX() + centerXOffset;
- final float centerY = getBounds().centerY() + centerYOffset;
-
- final float boundsXOffset =
- mCheckmarkDrawable.getIntrinsicWidth() / 2f * mCheckmarkScale;
- final float boundsYOffset =
- mCheckmarkDrawable.getIntrinsicHeight() / 2f * mCheckmarkScale;
-
- final int left = Math.round(centerX - boundsXOffset);
- final int top = Math.round(centerY - boundsYOffset);
- final int right = Math.round(centerX + boundsXOffset);
- final int bottom = Math.round(centerY + boundsYOffset);
- mCheckmarkDrawable.setBounds(left, top, right, bottom);
- mCheckmarkDrawable.draw(canvas);
- }
- }
-
- @Override
- public void setAlpha(int alpha) {
- }
-
- @Override
- public void setColorFilter(@Nullable ColorFilter colorFilter) {
- }
-
- @Override
- public int getOpacity() {
- return 0;
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java b/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java
deleted file mode 100644
index c99cb2d..0000000
--- a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.widget;
-
-import android.content.Context;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.os.Handler;
-import android.os.Looper;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.RotationUtils;
-import android.view.DisplayInfo;
-import android.view.Surface;
-import android.view.ViewGroup;
-import android.view.ViewTreeObserver;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.RelativeLayout;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.R;
-import com.android.systemui.biometrics.UdfpsUtils;
-import com.android.systemui.biometrics.shared.model.UdfpsOverlayParams;
-
-/**
- * View corresponding with udfps_enroll_view.xml
- */
-public class UdfpsEnrollView extends FrameLayout {
- private static final String TAG = "UdfpsEnrollView";
- @NonNull
- private final UdfpsEnrollDrawable mFingerprintDrawable;
- @NonNull
- private final UdfpsEnrollProgressBarDrawable mFingerprintProgressDrawable;
- @NonNull
- private final Handler mHandler;
-
- @NonNull
- private ImageView mFingerprintProgressView;
- private UdfpsUtils mUdfpsUtils;
-
- private int mProgressBarRadius;
-
- private Rect mSensorRect;
- private UdfpsOverlayParams mOverlayParams;
- private FingerprintSensorPropertiesInternal mSensorProperties;
-
- private int mTotalSteps = -1;
- private int mRemainingSteps = -1;
- private int mLocationsEnrolled = 0;
- private int mCenterTouchCount = 0;
-
- public UdfpsEnrollView(Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
- mFingerprintDrawable = new UdfpsEnrollDrawable(mContext, attrs);
- mFingerprintProgressDrawable = new UdfpsEnrollProgressBarDrawable(context, attrs);
- mHandler = new Handler(Looper.getMainLooper());
- mUdfpsUtils = new UdfpsUtils();
- }
-
- @Override
- protected void onFinishInflate() {
- ImageView fingerprintView = findViewById(R.id.udfps_enroll_animation_fp_view);
- fingerprintView.setImageDrawable(mFingerprintDrawable);
- mFingerprintProgressView = findViewById(R.id.udfps_enroll_animation_fp_progress_view);
- mFingerprintProgressView.setImageDrawable(mFingerprintProgressDrawable);
- }
-
- /**
- * Receive enroll progress information from FingerprintEnrollEnrollingUdfpsFragment
- */
- public void onEnrollmentProgress(int remaining, int totalSteps) {
- if (mTotalSteps == -1) {
- mTotalSteps = totalSteps;
- }
- mRemainingSteps = remaining;
- mHandler.post(() -> {
- mFingerprintProgressDrawable.onEnrollmentProgress(remaining, totalSteps);
- mFingerprintDrawable.onEnrollmentProgress(remaining, totalSteps);
- });
- }
-
- /**
- * Receive enroll help information from FingerprintEnrollEnrollingUdfpsFragment
- */
- public void onEnrollmentHelp() {
- mHandler.post(
- () -> mFingerprintProgressDrawable.onEnrollmentHelp(mRemainingSteps, mTotalSteps));
- }
-
- /**
- * Receive onAcquired from FingerprintEnrollEnrollingUdfpsFragment
- */
- public void onAcquired(boolean isAcquiredGood) {
- final boolean animateIfLastStepGood =
- isAcquiredGood && (mRemainingSteps <= 2 && mRemainingSteps >= 0);
- mHandler.post(() -> {
- onFingerUp();
- if (animateIfLastStepGood) mFingerprintProgressDrawable.onLastStepAcquired();
- });
- }
-
- /**
- * Receive onPointerDown from FingerprintEnrollEnrollingUdfpsFragment
- */
- public void onPointerDown(int sensorId) {
- onFingerDown();
- }
-
- /**
- * Receive onPointerUp from FingerprintEnrollEnrollingUdfpsFragment
- */
- public void onPointerUp(int sensorId) {
- onFingerUp();
- }
-
- private final ViewTreeObserver.OnDrawListener mOnDrawListener = this::updateOverlayParams;
-
- /**
- * setup SensorProperties
- */
- public void setSensorProperties(FingerprintSensorPropertiesInternal properties) {
- mSensorProperties = properties;
- ((ViewGroup) getParent()).getViewTreeObserver().addOnDrawListener(mOnDrawListener);
- }
-
- @Override
- protected void onDetachedFromWindow() {
- final ViewGroup parent = (ViewGroup) getParent();
- if (parent != null) {
- final ViewTreeObserver observer = parent.getViewTreeObserver();
- if (observer != null) {
- observer.removeOnDrawListener(mOnDrawListener);
- }
- }
- super.onDetachedFromWindow();
- }
-
- private void onSensorRectUpdated() {
- updateDimensions();
-
- // Updates sensor rect in relation to the overlay view
- mSensorRect.set(getPaddingX(), getPaddingY(),
- (mOverlayParams.getSensorBounds().width() + getPaddingX()),
- (mOverlayParams.getSensorBounds().height() + getPaddingY()));
- mFingerprintDrawable.onSensorRectUpdated(new RectF(mSensorRect));
- }
-
- private void updateDimensions() {
- // Original sensorBounds assume portrait mode.
- final Rect rotatedBounds = new Rect(mOverlayParams.getSensorBounds());
- int rotation = mOverlayParams.getRotation();
- if (rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) {
- RotationUtils.rotateBounds(
- rotatedBounds,
- mOverlayParams.getNaturalDisplayWidth(),
- mOverlayParams.getNaturalDisplayHeight(),
- rotation
- );
- }
-
- RelativeLayout parent = ((RelativeLayout) getParent());
- if (parent == null) {
- Log.e(TAG, "Fail to updateDimensions for " + this + ", parent null");
- return;
- }
- final int[] coords = parent.getLocationOnScreen();
- final int parentLeft = coords[0];
- final int parentTop = coords[1];
- final int parentRight = parentLeft + parent.getWidth();
- final int parentBottom = parentTop + parent.getHeight();
-
-
- RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(getWidth(),
- getHeight());
- if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) {
- params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
- params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
- params.rightMargin = parentRight - rotatedBounds.right - getPaddingX();
- params.topMargin = rotatedBounds.top - parentTop - getPaddingY();
- } else {
- if (rotation == Surface.ROTATION_90) {
- params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
- params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
- params.rightMargin = parentRight - rotatedBounds.right - getPaddingX();
- params.bottomMargin = parentBottom - rotatedBounds.bottom - getPaddingY();
- } else {
- params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
- params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
- params.bottomMargin = parentBottom - rotatedBounds.bottom - getPaddingY();
- params.leftMargin = rotatedBounds.left - parentLeft - getPaddingX();
- }
- }
- params.height = rotatedBounds.height() + 2 * getPaddingX();
- params.width = rotatedBounds.width() + 2 * getPaddingY();
- setLayoutParams(params);
- }
-
- private void onFingerDown() {
- mFingerprintDrawable.setShouldSkipDraw(true);
- mFingerprintDrawable.invalidateSelf();
- }
-
- private void onFingerUp() {
- mFingerprintDrawable.setShouldSkipDraw(false);
- mFingerprintDrawable.invalidateSelf();
- }
-
- private int getPaddingX() {
- return mProgressBarRadius;
- }
-
- private int getPaddingY() {
- return mProgressBarRadius;
- }
-
- private void updateOverlayParams() {
-
- if (mSensorProperties == null) {
- android.util.Log.e(TAG, "There is no sensor info!");
- return;
- }
-
- DisplayInfo displayInfo = new DisplayInfo();
- if (getDisplay() == null) {
- android.util.Log.e(TAG, "Can not get display");
- return;
- }
- getDisplay().getDisplayInfo(displayInfo);
- Rect udfpsBounds = mSensorProperties.getLocation().getRect();
- float scaleFactor = mUdfpsUtils.getScaleFactor(displayInfo);
- udfpsBounds.scale(scaleFactor);
-
- final Rect overlayBounds = new Rect(
- 0, /* left */
- displayInfo.getNaturalHeight() / 2, /* top */
- displayInfo.getNaturalWidth(), /* right */
- displayInfo.getNaturalHeight() /* botom */);
-
- mOverlayParams = new UdfpsOverlayParams(
- udfpsBounds,
- overlayBounds,
- displayInfo.getNaturalWidth(),
- displayInfo.getNaturalHeight(),
- scaleFactor,
- displayInfo.rotation,
- mSensorProperties.sensorType);
-
- post(() -> {
- mProgressBarRadius =
- (int) (mOverlayParams.getScaleFactor() * getContext().getResources().getInteger(
- R.integer.config_udfpsEnrollProgressBar));
- mSensorRect = new Rect(mOverlayParams.getSensorBounds());
-
- onSensorRectUpdated();
- });
-
- }
-}
-
diff --git a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java
index 1326831..11ecf8b 100644
--- a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java
@@ -39,6 +39,7 @@
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
+import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.VisibleForTesting;
@@ -46,6 +47,7 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.flags.Flags;
import com.android.settings.fuelgauge.BatteryMeterView;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -456,18 +458,24 @@
com.android.settings.Utils.formatPercentage(batteryLevel));
batterySummaryView.setVisibility(View.VISIBLE);
showBatteryIcon(linearLayout, batteryLevel, lowBatteryLevel, charging);
+ showBatteryRing(linearLayout, batteryLevel);
} else {
if (deviceId == MAIN_DEVICE_ID) {
linearLayout.setVisibility(View.VISIBLE);
linearLayout.findViewById(R.id.bt_battery_icon).setVisibility(View.GONE);
+
int level = preloadedNativeBatteryLevel.get();
if (level != BluetoothDevice.BATTERY_LEVEL_UNKNOWN
&& level != BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF) {
batterySummaryView.setText(
com.android.settings.Utils.formatPercentage(level));
batterySummaryView.setVisibility(View.VISIBLE);
+ showBatteryRing(linearLayout, level);
} else {
batterySummaryView.setVisibility(View.GONE);
+ if (Flags.enableBluetoothDeviceDetailsPolish()) {
+ linearLayout.findViewById(R.id.battery_ring).setVisibility(View.GONE);
+ }
}
} else {
// Hide it if it doesn't have battery information
@@ -481,6 +489,7 @@
com.android.settings.Utils.formatPercentage(batteryLevel));
batterySummaryView.setVisibility(View.VISIBLE);
showBatteryIcon(linearLayout, batteryLevel, lowBatteryLevel, charging);
+ showBatteryRing(linearLayout, batteryLevel);
} else {
batterySummaryView.setVisibility(View.GONE);
}
@@ -610,6 +619,14 @@
imageView.setVisibility(View.VISIBLE);
}
+ private void showBatteryRing(LinearLayout linearLayout, int level) {
+ if (Flags.enableBluetoothDeviceDetailsPolish()) {
+ ProgressBar batteryProgress = linearLayout.findViewById(R.id.battery_ring);
+ batteryProgress.setProgress(level);
+ batteryProgress.setVisibility(View.VISIBLE);
+ }
+ }
+
private void updateDisconnectLayout() {
mLayoutPreference.findViewById(R.id.layout_left).setVisibility(View.GONE);
mLayoutPreference.findViewById(R.id.layout_right).setVisibility(View.GONE);
@@ -620,6 +637,9 @@
linearLayout.findViewById(R.id.header_title).setVisibility(View.GONE);
linearLayout.findViewById(R.id.bt_battery_summary).setVisibility(View.GONE);
linearLayout.findViewById(R.id.bt_battery_icon).setVisibility(View.GONE);
+ if (Flags.enableBluetoothDeviceDetailsPolish()) {
+ linearLayout.findViewById(R.id.battery_ring).setVisibility(View.GONE);
+ }
// Only show bluetooth icon
final BluetoothDevice bluetoothDevice = mCachedDevice.getDevice();
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
index 3fa811a..2e5daeb 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
@@ -43,7 +43,6 @@
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.HeadsetProfile;
-import com.android.settingslib.bluetooth.HearingAidProfile;
import com.android.settingslib.bluetooth.LeAudioProfile;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfile;
@@ -95,6 +94,7 @@
new HashMap<String, List<CachedBluetoothDevice>>();
private boolean mIsLeContactSharingEnabled = false;
private boolean mIsLeAudioToggleEnabled = false;
+ private boolean mIsLeAudioOnlyDevice = false;
@VisibleForTesting
PreferenceCategory mProfilesContainer;
@@ -345,6 +345,11 @@
result.remove(mManager.getProfileManager().getA2dpProfile());
result.remove(mManager.getProfileManager().getHeadsetProfile());
}
+ boolean hearingAidSupported = result.contains(
+ mManager.getProfileManager().getHearingAidProfile());
+ if (leAudioSupported && !classicAudioSupported && !hearingAidSupported) {
+ mIsLeAudioOnlyDevice = true;
+ }
Log.d(TAG, "getProfiles:Map:" + mProfileDeviceMap);
return result;
}
@@ -513,19 +518,6 @@
refresh();
}
- private boolean isLeAudioOnlyDevice() {
- if (mCachedDevice.getProfiles().stream()
- .noneMatch(profile -> profile instanceof LeAudioProfile)) {
- return false;
- }
- return mCachedDevice.getProfiles().stream()
- .noneMatch(
- profile ->
- profile instanceof HearingAidProfile
- || profile instanceof A2dpProfile
- || profile instanceof HeadsetProfile);
- }
-
private void updateLeAudioConfig() {
mIsLeContactSharingEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
SettingsUIDeviceConfig.BT_LE_AUDIO_CONTACT_SHARING_ENABLED, true);
@@ -534,7 +526,7 @@
boolean isLeEnabledByDefault =
SystemProperties.getBoolean(LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY, true);
mIsLeAudioToggleEnabled = isLeAudioToggleVisible || isLeEnabledByDefault;
- if (Flags.hideLeAudioToggleForLeAudioOnlyDevice() && isLeAudioOnlyDevice()) {
+ if (Flags.hideLeAudioToggleForLeAudioOnlyDevice() && mIsLeAudioOnlyDevice) {
mIsLeAudioToggleEnabled = false;
Log.d(
TAG,
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index ffc97dc..791b629 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -52,6 +52,7 @@
import android.util.Pair;
import android.widget.Toast;
+import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.FragmentActivity;
import androidx.preference.Preference;
@@ -63,6 +64,7 @@
import com.android.settings.activityembedding.ActivityEmbeddingRulesController;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.dashboard.profileselector.ProfileSelectDialog;
+import com.android.settings.flags.Flags;
import com.android.settings.homepage.TopLevelHighlightMixin;
import com.android.settings.homepage.TopLevelSettings;
import com.android.settings.overlay.FeatureFactory;
@@ -413,13 +415,23 @@
METHOD_GET_PROVIDER_ICON);
final Pair<String, Integer> iconInfo = TileUtils.getIconFromUri(
mContext, packageName, uri, providerMap);
- if (iconInfo == null) {
+ final Icon icon;
+ if (iconInfo != null) {
+ icon = Icon.createWithResource(iconInfo.first, iconInfo.second);
+ } else if (Flags.supportRawDynamicIcons()) {
+ icon = TileUtils.getRawIconFromUri(mContext, uri, providerMap);
+ } else {
+ icon = null;
+ }
+ if (icon == null) {
Log.w(TAG, "Failed to get icon from uri " + uri);
return;
}
- final Icon icon = Icon.createWithResource(iconInfo.first, iconInfo.second);
+
+ final String iconPackage = (iconInfo != null) ? iconInfo.first : null;
+
ThreadUtils.postOnMainThread(() -> {
- setPreferenceIcon(preference, tile, forceRoundedIcon, iconInfo.first, icon);
+ setPreferenceIcon(preference, tile, forceRoundedIcon, iconPackage, icon);
});
});
return;
@@ -435,14 +447,21 @@
}
private void setPreferenceIcon(Preference preference, Tile tile, boolean forceRoundedIcon,
- String iconPackage, Icon icon) {
+ @Nullable String iconPackage, Icon icon) {
Drawable iconDrawable = icon.loadDrawable(preference.getContext());
if (iconDrawable == null) {
Log.w(TAG, "Set null preference icon for: " + iconPackage);
preference.setIcon(null);
return;
}
+ // Tint homepage icons
if (TextUtils.equals(tile.getCategory(), CategoryKey.CATEGORY_HOMEPAGE)) {
+ // Skip tinting and Adaptive Icon transformation for homepage account type raw icons
+ if (TextUtils.equals(tile.getGroupKey(), "top_level_account_category")
+ && iconPackage == null) {
+ preference.setIcon(iconDrawable);
+ return;
+ }
iconDrawable.setTint(Utils.getHomepageIconColor(preference.getContext()));
}
diff --git a/src/com/android/settings/development/DesktopModePreferenceController.java b/src/com/android/settings/development/DesktopModePreferenceController.java
index a9a4b07..3f8ddab 100644
--- a/src/com/android/settings/development/DesktopModePreferenceController.java
+++ b/src/com/android/settings/development/DesktopModePreferenceController.java
@@ -18,20 +18,24 @@
import static android.provider.Settings.Global.DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES;
-import android.content.Context;
-import android.os.SystemProperties;
-import android.provider.Settings;
-import android.util.Log;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.convertToToggleOverrideWithFallback;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_OFF;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_ON;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_UNSET;
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.TwoStatePreference;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
-import com.android.window.flags.Flags;
+import com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride;
+import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
/**
* Preference controller to control Desktop mode features
@@ -43,15 +47,6 @@
private static final String OVERRIDE_DESKTOP_MODE_FEATURES_KEY =
"override_desktop_mode_features";
- private static final String TAG = "DesktopModePreferenceController";
-
- @VisibleForTesting
- static final int SETTING_VALUE_OFF = 0;
- @VisibleForTesting
- static final int SETTING_VALUE_ON = 1;
- @VisibleForTesting
- static final int SETTING_VALUE_UNSET = -1;
-
@Nullable
private final DevelopmentSettingsDashboardFragment mFragment;
@@ -63,7 +58,7 @@
@Override
public boolean isAvailable() {
- return isDeviceEligibleForDesktopMode() && Flags.showDesktopWindowingDevOption();
+ return DesktopModeStatus.canShowDesktopModeDevOption(mContext);
}
@Override
@@ -72,11 +67,11 @@
}
@Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
+ public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
final boolean isEnabled = (Boolean) newValue;
Settings.Global.putInt(mContext.getContentResolver(),
DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES,
- isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
+ isEnabled ? OVERRIDE_ON.getSetting() : OVERRIDE_OFF.getSetting());
if (mFragment != null) {
RebootConfirmationDialogFragment.show(
mFragment, R.string.reboot_dialog_override_desktop_mode, this);
@@ -87,18 +82,14 @@
@Override
public void updateState(Preference preference) {
// Use overridden state, if not present, then use default state
- final boolean shouldDevOptionBeEnabledByDefault = Flags.enableDesktopWindowingMode();
- final int mode = Settings.Global.getInt(mContext.getContentResolver(),
- DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES,
- shouldDevOptionBeEnabledByDefault ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
- final boolean shouldDevOptionBeEnabled = switch (mode) {
- case SETTING_VALUE_OFF -> false;
- case SETTING_VALUE_ON -> true;
- case SETTING_VALUE_UNSET -> shouldDevOptionBeEnabledByDefault;
- default -> {
- Log.w(TAG, "Invalid override for desktop mode: " + mode);
- yield shouldDevOptionBeEnabledByDefault;
- }
+ final int overrideInt = Settings.Global.getInt(mContext.getContentResolver(),
+ DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_UNSET.getSetting());
+ final ToggleOverride toggleOverride = convertToToggleOverrideWithFallback(overrideInt,
+ OVERRIDE_UNSET);
+ final boolean shouldDevOptionBeEnabled = switch (toggleOverride) {
+ case OVERRIDE_OFF -> false;
+ case OVERRIDE_ON -> true;
+ case OVERRIDE_UNSET -> DesktopModeStatus.shouldDevOptionBeEnabledByDefault();
};
((TwoStatePreference) mPreference).setChecked(shouldDevOptionBeEnabled);
}
@@ -107,14 +98,6 @@
protected void onDeveloperOptionsSwitchDisabled() {
super.onDeveloperOptionsSwitchDisabled();
Settings.Global.putInt(mContext.getContentResolver(),
- DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, SETTING_VALUE_UNSET);
- }
-
- private boolean isDeviceEligibleForDesktopMode() {
- boolean enforceDeviceRestrictions = SystemProperties.getBoolean(
- "persist.wm.debug.desktop_mode_enforce_device_restrictions", true);
- boolean isDesktopModeSupported = mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_isDesktopModeSupported);
- return !enforceDeviceRestrictions || isDesktopModeSupported;
+ DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_UNSET.getSetting());
}
}
diff --git a/src/com/android/settings/development/Enable16KBootReceiver.java b/src/com/android/settings/development/Enable16KBootReceiver.java
index 007a67b..bc2096d 100644
--- a/src/com/android/settings/development/Enable16KBootReceiver.java
+++ b/src/com/android/settings/development/Enable16KBootReceiver.java
@@ -28,17 +28,17 @@
@Override
public void onReceive(@NonNull Context context, @NonNull Intent intent) {
String action = intent.getAction();
- if (!Intent.ACTION_BOOT_COMPLETED.equals(action)) {
- return;
- }
+ if (Intent.ACTION_BOOT_COMPLETED.equals(action)
+ || PageAgnosticNotificationService.INTENT_ACTION_DISMISSED.equals(action)) {
+ // Do nothing if device is not in page-agnostic mode
+ if (!Enable16kUtils.isPageAgnosticModeOn(context)) {
+ return;
+ }
- // Do nothing if device is not in page-agnostic mode
- if (!Enable16kUtils.isPageAgnosticModeOn(context)) {
- return;
+ // start a service to post persistent notification
+ Intent startServiceIntent = new Intent(context, PageAgnosticNotificationService.class);
+ startServiceIntent.setAction(action);
+ context.startServiceAsUser(startServiceIntent, UserHandle.SYSTEM);
}
-
- // start a service to post persistent notification
- Intent startNotificationIntent = new Intent(context, PageAgnosticNotificationService.class);
- context.startServiceAsUser(startNotificationIntent, UserHandle.SYSTEM);
}
}
diff --git a/src/com/android/settings/development/OWNERS b/src/com/android/settings/development/OWNERS
index 92c8cfa..cc573ea 100644
--- a/src/com/android/settings/development/OWNERS
+++ b/src/com/android/settings/development/OWNERS
@@ -9,3 +9,6 @@
# ShowRefreshRatePreferenceController
per-file ShowRefreshRatePreferenceController.java=file:platform/frameworks/native:/services/surfaceflinger/OWNERS
+
+# DesktopModePreferenceController
+per-file DesktopModePreferenceController.java=file:platform/frameworks/base:/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
diff --git a/src/com/android/settings/development/PageAgnosticNotificationService.java b/src/com/android/settings/development/PageAgnosticNotificationService.java
index 40dff0c..d33f1da 100644
--- a/src/com/android/settings/development/PageAgnosticNotificationService.java
+++ b/src/com/android/settings/development/PageAgnosticNotificationService.java
@@ -34,6 +34,8 @@
private static final String NOTIFICATION_CHANNEL_ID =
"com.android.settings.development.PageAgnosticNotificationService";
+ public static final String INTENT_ACTION_DISMISSED =
+ "com.android.settings.development.NOTIFICATION_DISMISSED";
private static final int NOTIFICATION_ID = 1;
static final int DISABLE_UPDATES_SETTING = 1;
@@ -63,6 +65,9 @@
public void onCreate() {
super.onCreate();
createNotificationChannel();
+
+ // No updates should be allowed in page-agnostic mode
+ disableAutomaticUpdates();
}
private Notification buildNotification() {
@@ -89,6 +94,15 @@
notifyIntent,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
+ Intent dismissIntent = new Intent(this, Enable16KBootReceiver.class);
+ dismissIntent.setAction(INTENT_ACTION_DISMISSED);
+ PendingIntent dismissPendingIntent =
+ PendingIntent.getBroadcast(
+ this.getApplicationContext(),
+ 0,
+ dismissIntent,
+ PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
+
Notification.Action action =
new Notification.Action.Builder(
R.drawable.empty_icon,
@@ -104,6 +118,7 @@
.setOngoing(true)
.setSmallIcon(R.drawable.ic_settings_24dp)
.setContentIntent(notifyPendingIntent)
+ .setDeleteIntent(dismissPendingIntent)
.addAction(action);
return builder.build();
@@ -131,9 +146,6 @@
if (mNotificationManager != null) {
mNotificationManager.notify(NOTIFICATION_ID, notification);
}
-
- // No updates should be allowed in page-agnostic mode
- disableAutomaticUpdates();
- return Service.START_NOT_STICKY;
+ return Service.START_REDELIVER_INTENT;
}
}
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index 005c073..7bbb06a 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -269,6 +269,11 @@
}
@Override
+ protected boolean shouldSkipForInitialSUW() {
+ return true;
+ }
+
+ @Override
public void onPause() {
super.onPause();
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
index e12cc9f..e441b85 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
@@ -166,6 +166,9 @@
/** Whether the device is under the battery defender mode */
boolean isBatteryDefend(BatteryInfo info);
+ /** Whether the battery usage reattribute is eabled or not. */
+ boolean isBatteryUsageReattributeEnabled();
+
/** Collect and process battery reattribute data if needed. */
boolean processBatteryReattributeData(
@NonNull Context context,
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
index 4f163a2..bdb236a 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
@@ -257,6 +257,11 @@
}
@Override
+ public boolean isBatteryUsageReattributeEnabled() {
+ return false;
+ }
+
+ @Override
public boolean processBatteryReattributeData(
@NonNull Context context,
@NonNull Map<Long, BatteryDiffData> batteryDiffDataMap,
diff --git a/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java b/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java
index d2f3adc..45871a3 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java
@@ -38,6 +38,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.settings.overlay.FeatureFactory;
import java.io.PrintWriter;
import java.time.Clock;
@@ -132,14 +133,23 @@
}
static void dumpBatteryReattributeDatabaseHist(Context context, PrintWriter writer) {
- dumpBatteryReattributeDatabaseHist(
- BatteryStateDatabase.getInstance(context).batteryReattributeDao(),
- writer);
+ try {
+ dumpBatteryReattributeDatabaseHist(
+ BatteryStateDatabase.getInstance(context).batteryReattributeDao(),
+ writer);
+ } catch (Exception e) {
+ Log.e(TAG, "failed to run dumpBatteryReattributeDatabaseHist()", e);
+ }
}
@VisibleForTesting
static void dumpBatteryReattributeDatabaseHist(
BatteryReattributeDao batteryReattributeDao, PrintWriter writer) {
+ if (!FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider()
+ .isBatteryUsageReattributeEnabled()) {
+ writer.println("\n\tBatteryReattribute is disabled!");
+ return;
+ }
writer.println("\n\tBatteryReattribute DatabaseHistory:");
final List<BatteryReattributeEntity> entities =
batteryReattributeDao.getAllAfter(
diff --git a/src/com/android/settings/inputmethod/PointerStrokeStylePreference.java b/src/com/android/settings/inputmethod/PointerStrokeStylePreference.java
new file mode 100644
index 0000000..1c02332
--- /dev/null
+++ b/src/com/android/settings/inputmethod/PointerStrokeStylePreference.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.inputmethod;
+
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_BLACK;
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_NONE;
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_WHITE;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.util.AttributeSet;
+import android.view.PointerIcon;
+import android.widget.LinearLayout;
+import android.widget.RadioButton;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+
+public class PointerStrokeStylePreference extends Preference {
+
+ public PointerStrokeStylePreference(@NonNull Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ setLayoutResource(R.layout.pointer_icon_stroke_style_layout);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ LinearLayout buttonHolder = (LinearLayout) holder.findViewById(R.id.button_holder);
+ // Intercept hover events so setting row does not highlight when hovering buttons.
+ buttonHolder.setOnHoverListener((v, e) -> true);
+
+ int currentStroke = getPreferenceDataStore().getInt(Settings.System.POINTER_STROKE_STYLE,
+ POINTER_ICON_VECTOR_STYLE_STROKE_WHITE);
+ initRadioButton(holder, R.id.stroke_style_white, POINTER_ICON_VECTOR_STYLE_STROKE_WHITE,
+ currentStroke);
+ initRadioButton(holder, R.id.stroke_style_black, POINTER_ICON_VECTOR_STYLE_STROKE_BLACK,
+ currentStroke);
+ initRadioButton(holder, R.id.stroke_style_none, POINTER_ICON_VECTOR_STYLE_STROKE_NONE,
+ currentStroke);
+ }
+
+ private void initRadioButton(@NonNull PreferenceViewHolder holder, int id, int strokeStyle,
+ int currentStroke) {
+ RadioButton radioButton = (RadioButton) holder.findViewById(id);
+ if (radioButton == null) {
+ return;
+ }
+ radioButton.setOnCheckedChangeListener((v, isChecked) -> {
+ if (isChecked) {
+ getPreferenceDataStore().putInt(Settings.System.POINTER_STROKE_STYLE, strokeStyle);
+ }
+ });
+ radioButton.setChecked(currentStroke == strokeStyle);
+ radioButton.setPointerIcon(PointerIcon.getSystemIcon(getContext(), PointerIcon.TYPE_ARROW));
+ }
+}
diff --git a/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceController.java b/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceController.java
new file mode 100644
index 0000000..e4ea996
--- /dev/null
+++ b/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceController.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.inputmethod;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.provider.Settings;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceDataStore;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class PointerStrokeStylePreferenceController extends BasePreferenceController {
+
+ @VisibleForTesting
+ static final String KEY_POINTER_STROKE_STYLE = "pointer_stroke_style";
+
+ public PointerStrokeStylePreferenceController(@NonNull Context context) {
+ super(context, KEY_POINTER_STROKE_STYLE);
+ }
+
+ @AvailabilityStatus
+ public int getAvailabilityStatus() {
+ return android.view.flags.Flags.enableVectorCursorA11ySettings() ? AVAILABLE
+ : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void displayPreference(@NonNull PreferenceScreen screen) {
+ super.displayPreference(screen);
+ Preference pointerStrokeStylePreference = screen.findPreference(KEY_POINTER_STROKE_STYLE);
+ if (pointerStrokeStylePreference == null) {
+ return;
+ }
+ pointerStrokeStylePreference.setPreferenceDataStore(new PreferenceDataStore() {
+ @Override
+ public void putInt(@NonNull String key, int value) {
+ Settings.System.putIntForUser(mContext.getContentResolver(), key, value,
+ UserHandle.USER_CURRENT);
+ }
+
+ @Override
+ public int getInt(@NonNull String key, int defValue) {
+ return Settings.System.getIntForUser(mContext.getContentResolver(), key, defValue,
+ UserHandle.USER_CURRENT);
+ }
+ });
+ }
+}
diff --git a/src/com/android/settings/inputmethod/TrackpadSettings.java b/src/com/android/settings/inputmethod/TrackpadSettings.java
index 4955933..dca418a 100644
--- a/src/com/android/settings/inputmethod/TrackpadSettings.java
+++ b/src/com/android/settings/inputmethod/TrackpadSettings.java
@@ -56,7 +56,8 @@
@Override
protected boolean isPageSearchEnabled(Context context) {
return FeatureFlagUtils
- .isEnabled(context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD);
+ .isEnabled(context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD)
+ && NewKeyboardSettingsUtils.isTouchpad();
}
};
}
diff --git a/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java b/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java
index 9a4b90f..a6af3f6 100644
--- a/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java
+++ b/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java
@@ -58,7 +58,8 @@
return FeatureFlagUtils
.isEnabled(
context,
- FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD_GESTURE);
+ FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD_GESTURE)
+ && NewKeyboardSettingsUtils.isTouchpad();
}
};
}
diff --git a/src/com/android/settings/network/MobileNetworkRepository.java b/src/com/android/settings/network/MobileNetworkRepository.java
index bd892c8..9901929 100644
--- a/src/com/android/settings/network/MobileNetworkRepository.java
+++ b/src/com/android/settings/network/MobileNetworkRepository.java
@@ -474,30 +474,16 @@
return null;
} else {
getUiccInfoBySubscriptionInfo(uiccSlotInfos, subInfo);
- SubscriptionInfo firstRemovableSubInfo = SubscriptionUtil.getFirstRemovableSubscription(
- context);
if (DEBUG) {
Log.d(TAG, "convert subscriptionInfo to entity for subId = " + subId);
}
- return new SubscriptionInfoEntity(String.valueOf(subId),
- subInfo.getSimSlotIndex(),
- subInfo.getCarrierId(), subInfo.getDisplayName().toString(),
- subInfo.getCarrierName() != null ? subInfo.getCarrierName().toString() : "",
- subInfo.getDataRoaming(), subInfo.getMccString(), subInfo.getMncString(),
- subInfo.getCountryIso(), subInfo.isEmbedded(), mCardId,
- subInfo.getPortIndex(), subInfo.isOpportunistic(),
- String.valueOf(subInfo.getGroupUuid()),
- subInfo.getSubscriptionType(),
+ return new SubscriptionInfoEntity(String.valueOf(subId), subInfo.getSimSlotIndex(),
+ subInfo.isEmbedded(), subInfo.isOpportunistic(),
SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, context).toString(),
SubscriptionUtil.isSubscriptionVisible(mSubscriptionManager, context, subInfo),
- SubscriptionUtil.getFormattedPhoneNumber(context, subInfo),
- firstRemovableSubInfo == null ? false
- : firstRemovableSubInfo.getSubscriptionId() == subId,
SubscriptionUtil.isDefaultSubscription(context, subId),
mSubscriptionManager.isValidSubscriptionId(subId),
- mSubscriptionManager.isUsableSubscriptionId(subId),
mSubscriptionManager.isActiveSubscriptionId(subId),
- true /*availableSubInfo*/,
mSubscriptionManager.getActiveDataSubscriptionId() == subId);
}
}
diff --git a/src/com/android/settings/notification/SettingsEnableZenModeDialog.java b/src/com/android/settings/notification/SettingsEnableZenModeDialog.java
index 880db35..d851caf 100644
--- a/src/com/android/settings/notification/SettingsEnableZenModeDialog.java
+++ b/src/com/android/settings/notification/SettingsEnableZenModeDialog.java
@@ -21,13 +21,13 @@
import android.os.Bundle;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.notification.modes.EnableZenModeDialog;
public class SettingsEnableZenModeDialog extends InstrumentedDialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
- return new com.android.settingslib.notification.EnableZenModeDialog(
- getContext()).createDialog();
+ return new EnableZenModeDialog(getContext()).createDialog();
}
@Override
diff --git a/src/com/android/settings/notification/modes/ZenModeActionsPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeActionsPreferenceController.java
deleted file mode 100644
index 2561a7b..0000000
--- a/src/com/android/settings/notification/modes/ZenModeActionsPreferenceController.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.notification.modes;
-
-import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
-
-import android.content.Context;
-import android.os.Bundle;
-
-import androidx.annotation.NonNull;
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settingslib.notification.modes.ZenMode;
-import com.android.settingslib.widget.ActionButtonsPreference;
-
-class ZenModeActionsPreferenceController extends AbstractZenModePreferenceController {
-
- ZenModeActionsPreferenceController(@NonNull Context context, @NonNull String key) {
- super(context, key);
- }
-
- @Override
- void updateState(Preference preference, @NonNull ZenMode zenMode) {
- ActionButtonsPreference buttonsPreference = (ActionButtonsPreference) preference;
-
- // TODO: b/346278854 - Add rename action (with setButton1Enabled(zenMode.canEditName())
- buttonsPreference.setButton1Text(R.string.zen_mode_action_change_name);
- buttonsPreference.setButton1Icon(R.drawable.ic_mode_edit);
- buttonsPreference.setButton1Enabled(false);
-
- buttonsPreference.setButton2Text(R.string.zen_mode_action_change_icon);
- buttonsPreference.setButton2Icon(R.drawable.ic_zen_mode_action_change_icon);
- buttonsPreference.setButton2Enabled(zenMode.canEditIcon());
- buttonsPreference.setButton2OnClickListener(v -> {
- Bundle bundle = new Bundle();
- bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, zenMode.getId());
- new SubSettingLauncher(mContext)
- .setDestination(ZenModeIconPickerFragment.class.getName())
- // TODO: b/332937635 - Update metrics category
- .setSourceMetricsCategory(0)
- .setArguments(bundle)
- .launch();
- });
- }
-}
diff --git a/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java
index f62dfdd..810b1b5 100644
--- a/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java
@@ -21,6 +21,7 @@
import android.content.Context;
import android.os.Bundle;
+import android.text.TextUtils;
import android.util.ArraySet;
import androidx.annotation.NonNull;
@@ -29,6 +30,7 @@
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
+import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.notification.modes.ZenMode;
@@ -82,6 +84,9 @@
.toIntent());
mZenMode = zenMode;
mPreference = preference;
+ if (TextUtils.isEmpty(mPreference.getSummary())) {
+ mPreference.setSummary(R.string.zen_mode_apps_calculating);
+ }
if (mApplicationsState != null && mHost != null) {
mAppSession = mApplicationsState.newSession(mAppSessionCallbacks, mHost.getLifecycle());
}
diff --git a/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceController.java b/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceController.java
new file mode 100644
index 0000000..de1adc7
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceController.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import android.content.Context;
+import android.widget.Button;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.widget.LayoutPreference;
+
+class ZenModeEditDonePreferenceController extends AbstractZenModePreferenceController {
+
+ private final Runnable mConfirmSave;
+ @Nullable private Button mButton;
+
+ ZenModeEditDonePreferenceController(@NonNull Context context, @NonNull String key,
+ Runnable confirmSave) {
+ super(context, key);
+ mConfirmSave = confirmSave;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ LayoutPreference pref = screen.findPreference(getPreferenceKey());
+ if (pref != null) {
+ mButton = pref.findViewById(R.id.done);
+ if (mButton != null) {
+ mButton.setOnClickListener(v -> mConfirmSave.run());
+ }
+ }
+ }
+
+ @Override
+ void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ if (mButton != null) {
+ mButton.setEnabled(!zenMode.getName().isBlank());
+ }
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeEditNameIconFragment.java b/src/com/android/settings/notification/modes/ZenModeEditNameIconFragment.java
new file mode 100644
index 0000000..a0c2cf1
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeEditNameIconFragment.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+
+public class ZenModeEditNameIconFragment extends ZenModeEditNameIconFragmentBase {
+
+ @Nullable
+ @Override
+ protected ZenMode onCreateInstantiateZenMode() {
+ String modeId = getModeIdFromArguments();
+ return modeId != null ? requireBackend().getMode(modeId) : null;
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ requireActivity().setTitle(R.string.zen_mode_rename_title);
+ }
+
+ @Override
+ void saveMode(ZenMode mode) {
+ String modeId = getModeIdFromArguments();
+ ZenMode modeToUpdate = modeId != null ? requireBackend().getMode(modeId) : null;
+ if (modeToUpdate == null) {
+ // Huh, maybe it was deleted while we were choosing the icon? Unusual...
+ Log.w(getLogTag(), "Couldn't fetch mode with id " + modeId
+ + " from the backend for saving. Discarding changes!");
+ finish();
+ return;
+ }
+
+ modeToUpdate.getRule().setName(mode.getRule().getName());
+ modeToUpdate.getRule().setIconResId(mode.getRule().getIconResId());
+ requireBackend().updateMode(modeToUpdate);
+ finish();
+ }
+
+ @Nullable
+ private String getModeIdFromArguments() {
+ Bundle bundle = getArguments();
+ if (bundle != null && bundle.containsKey(EXTRA_AUTOMATIC_ZEN_RULE_ID)) {
+ return bundle.getString(EXTRA_AUTOMATIC_ZEN_RULE_ID);
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ // TODO: b/332937635 - make this the correct metrics category
+ return SettingsEnums.NOTIFICATION_ZEN_MODE_AUTOMATION;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return "ZenModeEditNameIconFragment";
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentBase.java b/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentBase.java
new file mode 100644
index 0000000..d666254
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentBase.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.util.Log;
+
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * Base class for the "add a mode" and "edit mode name and icon" fragments. In both cases we are
+ * editing a {@link ZenMode}, but the mode shouldn't be saved immediately after each atomic change
+ * -- instead, it will be saved to the backend upon user confirmation.
+ *
+ * <p>As a result, instead of using {@link ZenModesBackend} to apply each change, we instead modify
+ * an in-memory {@link ZenMode}, that is preserved/restored in extras. This also means we don't
+ * listen to changes -- whatever the user sees should be applied.
+ */
+public abstract class ZenModeEditNameIconFragmentBase extends DashboardFragment {
+
+ private static final String MODE_KEY = "ZenMode";
+
+ @Nullable private ZenMode mZenMode;
+
+ private ZenModesBackend mBackend;
+
+ @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+ void setBackend(ZenModesBackend backend) {
+ mBackend = backend;
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ if (mBackend == null) {
+ mBackend = ZenModesBackend.getInstance(context);
+ }
+ }
+
+ @Override
+ public final void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ mZenMode = icicle != null
+ ? icicle.getParcelable(MODE_KEY, ZenMode.class)
+ : onCreateInstantiateZenMode();
+
+ if (mZenMode == null) {
+ finish();
+ }
+ }
+
+ /**
+ * Provides the mode that will be edited. Called in {@link #onCreate}, the first time (the
+ * value returned here is persisted on Fragment recreation).
+ *
+ * <p>If {@code null} is returned, the fragment will {@link #finish()}.
+ */
+ @Nullable
+ protected abstract ZenMode onCreateInstantiateZenMode();
+
+ @Override
+ protected final int getPreferenceScreenResId() {
+ return R.xml.modes_edit_name_icon;
+ }
+
+ @Override
+ protected final List<AbstractPreferenceController> createPreferenceControllers(
+ Context context) {
+ return ImmutableList.of(
+ new ZenModeIconPickerIconPreferenceController(context, "chosen_icon", this),
+ new ZenModeEditNamePreferenceController(context, "name", this::setModeName),
+ new ZenModeIconPickerListPreferenceController(context, "icon_list",
+ this::setModeIcon),
+ new ZenModeEditDonePreferenceController(context, "done", this::saveMode)
+ );
+ }
+
+ @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+ @Nullable
+ ZenMode getZenMode() {
+ return mZenMode;
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ updateControllers();
+ }
+
+ @VisibleForTesting
+ final void setModeName(String name) {
+ checkNotNull(mZenMode).getRule().setName(Strings.nullToEmpty(name));
+ updateControllers(); // Updates confirmation button.
+ }
+
+ @VisibleForTesting
+ final void setModeIcon(@DrawableRes int iconResId) {
+ checkNotNull(mZenMode).getRule().setIconResId(iconResId);
+ updateControllers(); // Updates icon at the top.
+ }
+
+ protected void updateControllers() {
+ PreferenceScreen screen = getPreferenceScreen();
+ Collection<List<AbstractPreferenceController>> controllers = getPreferenceControllers();
+ if (mZenMode == null || screen == null || controllers == null) {
+ return;
+ }
+ for (List<AbstractPreferenceController> list : controllers) {
+ for (AbstractPreferenceController controller : list) {
+ try {
+ final String key = controller.getPreferenceKey();
+ final Preference preference = screen.findPreference(key);
+ if (preference != null) {
+ AbstractZenModePreferenceController zenController =
+ (AbstractZenModePreferenceController) controller;
+ zenController.updateZenMode(preference, mZenMode);
+ } else {
+ Log.d(getLogTag(),
+ String.format("Cannot find preference with key %s in Controller %s",
+ key, controller.getClass().getSimpleName()));
+ }
+ controller.displayPreference(screen);
+ } catch (ClassCastException e) {
+ // Skip any controllers that aren't AbstractZenModePreferenceController.
+ Log.d(getLogTag(), "Could not cast: " + controller.getClass().getSimpleName());
+ }
+ }
+ }
+ }
+
+ @VisibleForTesting
+ final void saveMode() {
+ saveMode(checkNotNull(mZenMode));
+ }
+
+ /**
+ * Called to actually save the mode, after the user confirms. This method is also responsible
+ * for calling {@link #finish()}, if appropriate.
+ *
+ * <p>Note that {@code mode} is the <em>in-memory</em> mode and, as such, may have obsolete
+ * data. If the concrete fragment is editing an existing mode, it should first fetch it from
+ * the backend, and copy the new name and icon before saving. */
+ abstract void saveMode(ZenMode mode);
+
+ @NonNull
+ protected ZenModesBackend requireBackend() {
+ checkState(mBackend != null);
+ return mBackend;
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putParcelable(MODE_KEY, mZenMode);
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceController.java b/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceController.java
new file mode 100644
index 0000000..78cbfe0
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceController.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import android.content.Context;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.widget.EditText;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.widget.LayoutPreference;
+
+import java.util.function.Consumer;
+
+class ZenModeEditNamePreferenceController extends AbstractZenModePreferenceController {
+
+ private final Consumer<String> mModeNameSetter;
+ @Nullable private EditText mEditText;
+ private boolean mIsSettingText;
+
+ ZenModeEditNamePreferenceController(@NonNull Context context, @NonNull String key,
+ @NonNull Consumer<String> modeNameSetter) {
+ super(context, key);
+ mModeNameSetter = modeNameSetter;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ if (mEditText == null) {
+ LayoutPreference pref = checkNotNull(screen.findPreference(getPreferenceKey()));
+ mEditText = pref.findViewById(android.R.id.edit);
+
+ mEditText.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) { }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ if (!mIsSettingText) {
+ mModeNameSetter.accept(s.toString());
+ }
+ }
+ });
+ }
+ }
+
+ @Override
+ void updateState(Preference preference, @NonNull ZenMode zenMode) {
+ if (mEditText != null) {
+ mIsSettingText = true;
+ try {
+ String currentText = mEditText.getText().toString();
+ String modeName = zenMode.getName();
+ if (!modeName.equals(currentText)) {
+ mEditText.setText(modeName);
+ }
+ } finally {
+ mIsSettingText = false;
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeFragment.java b/src/com/android/settings/notification/modes/ZenModeFragment.java
index 748c735..c5b52a9 100644
--- a/src/com/android/settings/notification/modes/ZenModeFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeFragment.java
@@ -38,8 +38,9 @@
public class ZenModeFragment extends ZenModeFragmentBase {
- // for mode deletion menu
- private static final int DELETE_MODE = 1;
+ // for mode context menu
+ private static final int RENAME_MODE = 1;
+ private static final int DELETE_MODE = 2;
private ModeMenuProvider mModeMenuProvider;
@@ -54,7 +55,6 @@
prefControllers.add(new ZenModeHeaderController(context, "header", this));
prefControllers.add(
new ZenModeButtonPreferenceController(context, "activate", this, mBackend));
- prefControllers.add(new ZenModeActionsPreferenceController(context, "actions"));
prefControllers.add(new ZenModePeopleLinkPreferenceController(
context, "zen_mode_people", mHelperBackend));
prefControllers.add(new ZenModeAppsLinkPreferenceController(
@@ -127,14 +127,18 @@
}
private class ModeMenuProvider implements MenuProvider {
- private ZenMode mZenMode;
- ModeMenuProvider(ZenMode mode) {
+ @NonNull private final ZenMode mZenMode;
+
+ ModeMenuProvider(@NonNull ZenMode mode) {
mZenMode = mode;
}
@Override
public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
- if (mZenMode != null && mZenMode.canBeDeleted()) {
+ if (mZenMode.canEditNameAndIcon()) {
+ menu.add(Menu.NONE, RENAME_MODE, Menu.NONE, R.string.zen_mode_menu_rename_mode);
+ }
+ if (mZenMode.canBeDeleted()) {
// Only deleteable modes should get a delete menu option.
menu.add(Menu.NONE, DELETE_MODE, Menu.NONE, R.string.zen_mode_menu_delete_mode);
}
@@ -142,23 +146,25 @@
@Override
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
- if (mZenMode != null) {
- if (menuItem.getItemId() == DELETE_MODE) {
- new AlertDialog.Builder(mContext)
- .setTitle(mContext.getString(R.string.zen_mode_delete_mode_confirmation,
- mZenMode.getRule().getName()))
- .setPositiveButton(R.string.zen_mode_schedule_delete,
- (dialog, which) -> {
- // start finishing before calling removeMode() so that we
- // don't try to update this activity with a nonexistent mode
- // when the zen mode config is updated
- finish();
- mBackend.removeMode(mZenMode);
- })
- .setNegativeButton(R.string.cancel, null)
- .show();
- return true;
- }
+ if (menuItem.getItemId() == RENAME_MODE) {
+ // TODO: b/332937635 - Update metrics category
+ ZenSubSettingLauncher.forModeFragment(mContext, ZenModeEditNameIconFragment.class,
+ mZenMode.getId(), 0).launch();
+ } else if (menuItem.getItemId() == DELETE_MODE) {
+ new AlertDialog.Builder(mContext)
+ .setTitle(mContext.getString(R.string.zen_mode_delete_mode_confirmation,
+ mZenMode.getRule().getName()))
+ .setPositiveButton(R.string.zen_mode_schedule_delete,
+ (dialog, which) -> {
+ // start finishing before calling removeMode() so that we
+ // don't try to update this activity with a nonexistent mode
+ // when the zen mode config is updated
+ finish();
+ mBackend.removeMode(mZenMode);
+ })
+ .setNegativeButton(R.string.cancel, null)
+ .show();
+ return true;
}
return false;
}
diff --git a/src/com/android/settings/notification/modes/ZenModeIconPickerFragment.java b/src/com/android/settings/notification/modes/ZenModeIconPickerFragment.java
deleted file mode 100644
index f065af2..0000000
--- a/src/com/android/settings/notification/modes/ZenModeIconPickerFragment.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.notification.modes;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-
-import com.android.settings.R;
-import com.android.settingslib.core.AbstractPreferenceController;
-
-import com.google.common.collect.ImmutableList;
-
-import java.util.List;
-
-public class ZenModeIconPickerFragment extends ZenModeFragmentBase {
- @Override
- protected int getPreferenceScreenResId() {
- return R.xml.modes_icon_picker;
- }
-
- @Override
- public int getMetricsCategory() {
- // TODO: b/332937635 - make this the correct metrics category
- return SettingsEnums.NOTIFICATION_ZEN_MODE_AUTOMATION;
- }
-
- @Override
- protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
- return ImmutableList.of(
- new ZenModeIconPickerIconPreferenceController(context, "current_icon", this),
- new ZenModeIconPickerListPreferenceController(context, "icon_list",
- mIconPickerListener));
- }
-
- private final ZenModeIconPickerListPreferenceController.IconPickerListener mIconPickerListener =
- new ZenModeIconPickerListPreferenceController.IconPickerListener() {
- @Override
- public void onIconSelected(int iconResId) {
- saveMode(mode -> mode.getRule().setIconResId(iconResId));
- finish();
- }
- };
-}
diff --git a/src/com/android/settings/notification/modes/ZenModeNewCustomFragment.java b/src/com/android/settings/notification/modes/ZenModeNewCustomFragment.java
new file mode 100644
index 0000000..6086c0c
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeNewCustomFragment.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import com.google.common.base.Strings;
+
+public class ZenModeNewCustomFragment extends ZenModeEditNameIconFragmentBase {
+
+ @Nullable
+ @Override
+ protected ZenMode onCreateInstantiateZenMode() {
+ return ZenMode.newCustomManual(
+ requireContext().getString(R.string.zen_mode_new_custom_default_name),
+ /* iconResId= */ 0);
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ requireActivity().setTitle(R.string.zen_mode_new_custom_title);
+ }
+
+ @Override
+ void saveMode(ZenMode mode) {
+ String modeName = Strings.isNullOrEmpty(mode.getName())
+ ? requireContext().getString(R.string.zen_mode_new_custom_default_name)
+ : mode.getName();
+
+ ZenMode created = requireBackend().addCustomManualMode(modeName,
+ mode.getRule().getIconResId());
+ if (created != null) {
+ // Open the mode view fragment and close the "add mode" fragment, so exiting the mode
+ // view goes back to previous screen (which should be the modes list).
+ ZenSubSettingLauncher.forMode(requireContext(), created.getId()).launch();
+ finish();
+ }
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ // TODO: b/332937635 - make this the correct metrics category
+ return 0;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return "ZenModeNewCustomFragment";
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java b/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
index 48a4c36..00d0eef 100644
--- a/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
+++ b/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
@@ -41,8 +41,11 @@
import android.content.Context;
import android.icu.text.MessageFormat;
+import android.provider.Settings;
import android.service.notification.ZenDeviceEffects;
+import android.service.notification.ZenModeConfig;
import android.service.notification.ZenPolicy;
+import android.util.ArrayMap;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -448,4 +451,33 @@
}
return msgFormat.format(args);
}
+
+ String getSoundSummary(int zenMode, ZenModeConfig config) {
+ if (zenMode != Settings.Global.ZEN_MODE_OFF) {
+ String description = ZenModeConfig.getDescription(mContext, true, config, false);
+
+ if (description == null) {
+ return mContext.getString(R.string.zen_mode_sound_summary_on);
+ } else {
+ return mContext.getString(R.string.zen_mode_sound_summary_on_with_info,
+ description);
+ }
+ } else {
+ int count = 0;
+ final ArrayMap<String, ZenModeConfig.ZenRule> ruleMap = config.automaticRules;
+ if (ruleMap != null) {
+ for (ZenModeConfig.ZenRule rule : ruleMap.values()) {
+ if (rule != null && rule.enabled) {
+ count++;
+ }
+ }
+ }
+ MessageFormat msgFormat = new MessageFormat(
+ mContext.getString(R.string.modes_sound_summary_off),
+ Locale.getDefault());
+ Map<String, Object> msgArgs = new HashMap<>();
+ msgArgs.put("count", count);
+ return msgFormat.format(msgArgs);
+ }
+ }
}
diff --git a/src/com/android/settings/notification/modes/ZenModesLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModesLinkPreferenceController.java
new file mode 100644
index 0000000..f2679d7
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModesLinkPreferenceController.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import android.app.Flags;
+import android.app.NotificationManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.UserHandle;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+
+public class ZenModesLinkPreferenceController extends BasePreferenceController
+ implements LifecycleObserver, OnResume, OnPause {
+
+ private SettingObserver mSettingObserver;
+ private ZenModeSummaryHelper mSummaryBuilder;
+ private NotificationManager mNm;
+
+ public ZenModesLinkPreferenceController(Context context, String key) {
+ super(context, key);
+ mSummaryBuilder = new ZenModeSummaryHelper(context, ZenHelperBackend.getInstance(context));
+ mNm = mContext.getSystemService(NotificationManager.class);
+ }
+
+ @Override
+ @AvailabilityStatus
+ public int getAvailabilityStatus() {
+ return Flags.modesUi() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ Preference preference = screen.findPreference(getPreferenceKey());
+ mSettingObserver = new SettingObserver(preference);
+ }
+
+ @Override
+ public void onResume() {
+ if (mSettingObserver != null) {
+ mSettingObserver.register(mContext.getContentResolver());
+ }
+ }
+
+ @Override
+ public void onPause() {
+ if (mSettingObserver != null) {
+ mSettingObserver.unregister(mContext.getContentResolver());
+ }
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ preference.setSummary(mSummaryBuilder.getSoundSummary(
+ Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.ZEN_MODE,
+ Settings.Global.ZEN_MODE_OFF),
+ mNm.getZenModeConfig()));
+ }
+
+ class SettingObserver extends ContentObserver {
+ private final Uri ZEN_MODE_URI = Settings.Global.getUriFor(Settings.Global.ZEN_MODE);
+ private final Uri ZEN_MODE_CONFIG_ETAG_URI = Settings.Global.getUriFor(
+ Settings.Global.ZEN_MODE_CONFIG_ETAG);
+
+ private final Preference mPreference;
+
+ public SettingObserver(Preference preference) {
+ super(new Handler());
+ mPreference = preference;
+ }
+
+ public void register(ContentResolver cr) {
+ cr.registerContentObserver(ZEN_MODE_URI, false, this, UserHandle.USER_ALL);
+ cr.registerContentObserver(ZEN_MODE_CONFIG_ETAG_URI, false, this, UserHandle.USER_ALL);
+ }
+
+ public void unregister(ContentResolver cr) {
+ cr.unregisterContentObserver(this);
+ }
+
+ @Override
+ public void onChange(boolean selfChange, Uri uri) {
+ super.onChange(selfChange, uri);
+ if (ZEN_MODE_URI.equals(uri)) {
+ updateState(mPreference);
+ }
+
+ if (ZEN_MODE_CONFIG_ETAG_URI.equals(uri)) {
+ updateState(mPreference);
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModesListFragment.java b/src/com/android/settings/notification/modes/ZenModesListFragment.java
index 4622996..be458b3 100644
--- a/src/com/android/settings/notification/modes/ZenModesListFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModesListFragment.java
@@ -25,6 +25,7 @@
import androidx.annotation.VisibleForTesting;
import com.android.settings.R;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.ModeType;
import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.OnAddModeListener;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -37,7 +38,6 @@
import java.util.List;
import java.util.Optional;
-import java.util.Random;
@SearchIndexable
public class ZenModesListFragment extends ZenModesFragmentBase {
@@ -100,13 +100,12 @@
mBackend.getModes().stream().map(ZenMode::getId).toList());
startActivityForResult(type.creationActivityIntent(), REQUEST_NEW_MODE);
} else {
- // Custom-manual mode.
- // TODO: b/326442408 - Transition to the choose-name-and-icon fragment.
- ZenMode mode = mBackend.addCustomManualMode(
- "Mode #" + new Random().nextInt(100), 0);
- if (mode != null) {
- ZenSubSettingLauncher.forMode(mContext, mode.getId()).launch();
- }
+ // Custom-manual mode -> "add a mode" screen.
+ // TODO: b/332937635 - set metrics categories correctly
+ new SubSettingLauncher(requireContext())
+ .setDestination(ZenModeNewCustomFragment.class.getName())
+ .setSourceMetricsCategory(0)
+ .launch();
}
}
diff --git a/src/com/android/settings/notification/modes/ZenSubSettingLauncher.java b/src/com/android/settings/notification/modes/ZenSubSettingLauncher.java
index 529f7fa..00c21bb 100644
--- a/src/com/android/settings/notification/modes/ZenSubSettingLauncher.java
+++ b/src/com/android/settings/notification/modes/ZenSubSettingLauncher.java
@@ -23,6 +23,7 @@
import android.os.Bundle;
import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.dashboard.DashboardFragment;
class ZenSubSettingLauncher {
@@ -32,7 +33,7 @@
}
static SubSettingLauncher forModeFragment(Context context,
- Class<? extends ZenModeFragmentBase> fragmentClass, String modeId,
+ Class<? extends DashboardFragment> fragmentClass, String modeId,
int sourceMetricsCategory) {
Bundle bundle = new Bundle();
bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, modeId);
diff --git a/src/com/android/settings/notification/zen/SettingsZenDurationDialog.java b/src/com/android/settings/notification/zen/SettingsZenDurationDialog.java
index c8d6eb9..bb83a73 100644
--- a/src/com/android/settings/notification/zen/SettingsZenDurationDialog.java
+++ b/src/com/android/settings/notification/zen/SettingsZenDurationDialog.java
@@ -21,13 +21,13 @@
import android.os.Bundle;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.notification.modes.ZenDurationDialog;
public class SettingsZenDurationDialog extends InstrumentedDialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
- return new com.android.settingslib.notification.ZenDurationDialog(
- getContext()).createDialog();
+ return new ZenDurationDialog(getContext()).createDialog();
}
@Override
diff --git a/src/com/android/settings/notification/zen/ZenDurationDialogPreference.java b/src/com/android/settings/notification/zen/ZenDurationDialogPreference.java
index 11def66..f243a51 100644
--- a/src/com/android/settings/notification/zen/ZenDurationDialogPreference.java
+++ b/src/com/android/settings/notification/zen/ZenDurationDialogPreference.java
@@ -23,7 +23,7 @@
import androidx.appcompat.app.AlertDialog;
import com.android.settingslib.CustomDialogPreferenceCompat;
-import com.android.settingslib.notification.ZenDurationDialog;
+import com.android.settingslib.notification.modes.ZenDurationDialog;
public class ZenDurationDialogPreference extends CustomDialogPreferenceCompat {
diff --git a/src/com/android/settings/notification/zen/ZenModePreferenceController.java b/src/com/android/settings/notification/zen/ZenModePreferenceController.java
index 7c36d80..c21bc3b 100644
--- a/src/com/android/settings/notification/zen/ZenModePreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModePreferenceController.java
@@ -28,9 +28,7 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
-import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.notification.modes.ZenModesListFragment;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
@@ -51,7 +49,6 @@
super.displayPreference(screen);
Preference preference = screen.findPreference(getPreferenceKey());
mSettingObserver = new SettingObserver(preference);
- maybeSetTitleAndDestination(preference);
}
@Override
@@ -70,28 +67,17 @@
@Override
public int getAvailabilityStatus() {
- return AVAILABLE_UNSEARCHABLE;
+ return Flags.modesUi() ? UNSUPPORTED_ON_DEVICE : AVAILABLE_UNSEARCHABLE;
}
@Override
public void updateState(Preference preference) {
super.updateState(preference);
- maybeSetTitleAndDestination(preference);
if (preference.isEnabled()) {
preference.setSummary(mSummaryBuilder.getSoundSummary());
}
}
- // Only when modes_ui is active: change title & target fragment.
- private void maybeSetTitleAndDestination(Preference preference) {
- if (!Flags.modesUi()) {
- return;
- }
-
- preference.setTitle(R.string.zen_modes_list_title);
- preference.setFragment(ZenModesListFragment.class.getCanonicalName());
- }
-
class SettingObserver extends ContentObserver {
private final Uri ZEN_MODE_URI = Settings.Global.getUriFor(Settings.Global.ZEN_MODE);
private final Uri ZEN_MODE_CONFIG_ETAG_URI = Settings.Global.getUriFor(
diff --git a/src/com/android/settings/overlay/FeatureFactory.kt b/src/com/android/settings/overlay/FeatureFactory.kt
index 675d789..84b82cb 100644
--- a/src/com/android/settings/overlay/FeatureFactory.kt
+++ b/src/com/android/settings/overlay/FeatureFactory.kt
@@ -22,7 +22,6 @@
import com.android.settings.applications.ApplicationFeatureProvider
import com.android.settings.biometrics.face.FaceFeatureProvider
import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider
import com.android.settings.bluetooth.BluetoothFeatureProvider
import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider
import com.android.settings.connecteddevice.stylus.StylusFeatureProvider
@@ -119,11 +118,6 @@
abstract val fingerprintFeatureProvider: FingerprintFeatureProvider
/**
- * Gets implementation for Biometrics repository provider.
- */
- abstract val biometricsRepositoryProvider: BiometricsRepositoryProvider
-
- /**
* Gets implementation for the WifiTrackerLib.
*/
abstract val wifiTrackerLibProvider: WifiTrackerLibProvider
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.kt b/src/com/android/settings/overlay/FeatureFactoryImpl.kt
index 2142ea5..a21d7e3 100644
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.kt
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.kt
@@ -31,7 +31,6 @@
import com.android.settings.biometrics.face.FaceFeatureProviderImpl
import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider
import com.android.settings.biometrics.fingerprint.FingerprintFeatureProviderImpl
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProviderImpl
import com.android.settings.bluetooth.BluetoothFeatureProvider
import com.android.settings.bluetooth.BluetoothFeatureProviderImpl
import com.android.settings.connecteddevice.dock.DockUpdaterFeatureProviderImpl
@@ -152,8 +151,6 @@
FingerprintFeatureProviderImpl()
}
- override val biometricsRepositoryProvider by lazy { BiometricsRepositoryProviderImpl() }
-
override val wifiTrackerLibProvider: WifiTrackerLibProvider by lazy {
WifiTrackerLibProviderImpl()
}
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index cfd12f0..1b771a2 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -243,6 +243,7 @@
@Override
protected void onCreate(Bundle savedState) {
setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+ setTheme(R.style.SettingsPreferenceTheme_SetupWizard);
ThemeHelper.trySetDynamicColor(this);
super.onCreate(savedState);
}
diff --git a/src/com/android/settings/search/SearchFeatureProviderImpl.kt b/src/com/android/settings/search/SearchFeatureProviderImpl.kt
index 2ea9910..b1378ab 100644
--- a/src/com/android/settings/search/SearchFeatureProviderImpl.kt
+++ b/src/com/android/settings/search/SearchFeatureProviderImpl.kt
@@ -22,11 +22,18 @@
import android.net.Uri
import android.provider.Settings
import com.android.settings.search.SearchIndexableResourcesFactory.createSearchIndexableResources
+import com.android.settings.spa.search.SpaSearchRepository
import com.android.settingslib.search.SearchIndexableResources
/** FeatureProvider for the refactored search code. */
open class SearchFeatureProviderImpl : SearchFeatureProvider {
- private val lazySearchIndexableResources by lazy { createSearchIndexableResources() }
+ private val lazySearchIndexableResources by lazy {
+ createSearchIndexableResources().apply {
+ for (searchIndexableData in SpaSearchRepository().getSearchIndexableDataList()) {
+ addIndex(searchIndexableData)
+ }
+ }
+ }
override fun verifyLaunchSearchResultPageCaller(context: Context, callerPackage: String) {
require(callerPackage.isNotEmpty()) {
diff --git a/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt b/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
index 873a2c3..b9a375c 100644
--- a/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
+++ b/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
@@ -46,10 +46,14 @@
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel
import com.android.settings.R
+import com.android.settings.flags.Flags
import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settings.network.SubscriptionUtil
import com.android.settings.network.telephony.DataSubscriptionRepository
import com.android.settings.network.telephony.MobileDataRepository
+import com.android.settings.network.telephony.requireSubscriptionManager
import com.android.settings.spa.network.PrimarySimRepository.PrimarySimInfo
+import com.android.settings.spa.search.SearchablePage
import com.android.settings.wifi.WifiPickerTrackerHelper
import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
import com.android.settingslib.spa.framework.common.SettingsPageProvider
@@ -62,6 +66,7 @@
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
import com.android.settingslib.spa.widget.ui.Category
import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
+import com.android.settingslib.spaprivileged.framework.common.userManager
import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBooleanFlow
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -78,7 +83,7 @@
/**
* Showing the sim onboarding which is the process flow of sim switching on.
*/
-open class NetworkCellularGroupProvider : SettingsPageProvider {
+open class NetworkCellularGroupProvider : SettingsPageProvider, SearchablePage {
override val name = fileName
override val metricsCategory = SettingsEnums.MOBILE_NETWORK_LIST
private val owner = createSettingsPage()
@@ -191,8 +196,24 @@
open fun OtherSection(){
// Do nothing
}
+
+ override fun getSearchableTitles(context: Context): List<String> {
+ if (!isPageSearchable(context)) return emptyList()
+ return buildList {
+ if (context.requireSubscriptionManager().activeSubscriptionInfoCount > 0) {
+ add(context.getString(R.string.mobile_data_settings_title))
+ }
+ }
+ }
+
companion object {
const val fileName = "NetworkCellularGroupProvider"
+
+ private fun isPageSearchable(context: Context) =
+ Flags.isDualSimOnboardingEnabled() &&
+ SubscriptionUtil.isSimHardwareVisible(context) &&
+ !com.android.settingslib.Utils.isWifiOnly(context) &&
+ context.userManager.isAdminUser
}
}
diff --git a/src/com/android/settings/spa/notification/AppNotificationsListModel.kt b/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
index 9f949c4..8a534c8 100644
--- a/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
+++ b/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
@@ -105,7 +105,7 @@
override fun getSpinnerOptions(recordList: List<AppNotificationsRecord>): List<SpinnerOption> {
val options = mutableListOf(SpinnerItem.AllApps, SpinnerItem.TurnedOff)
- if (repository.isUserUnlocked(recordList[0].app.userId)) {
+ if (recordList.isNotEmpty() && repository.isUserUnlocked(recordList[0].app.userId)) {
options.add(0, SpinnerItem.MostRecent)
options.add(1, SpinnerItem.MostFrequent)
}
diff --git a/src/com/android/settings/spa/search/SearchablePage.kt b/src/com/android/settings/spa/search/SearchablePage.kt
new file mode 100644
index 0000000..2364514
--- /dev/null
+++ b/src/com/android/settings/spa/search/SearchablePage.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.search
+
+import android.content.Context
+
+interface SearchablePage {
+
+ /** Gets the searchable titles at the current moment. */
+ fun getSearchableTitles(context: Context): List<String>
+}
diff --git a/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt b/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt
new file mode 100644
index 0000000..8c2bc37
--- /dev/null
+++ b/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.search
+
+import android.app.Activity
+import android.os.Bundle
+import com.android.settings.SettingsActivity.EXTRA_FRAGMENT_ARG_KEY
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
+import com.android.settings.password.PasswordUtils
+import com.android.settings.spa.SpaDestination
+
+class SpaSearchLandingActivity : Activity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ if (!isValidCall()) return
+
+ val destination = intent.getStringExtra(EXTRA_FRAGMENT_ARG_KEY)
+ if (destination.isNullOrBlank()) return
+
+ SpaDestination(destination = destination, highlightMenuKey = null)
+ .startFromExportedActivity(this)
+ finish()
+ }
+
+ private fun isValidCall() =
+ PasswordUtils.getCallingAppPackageName(activityToken) ==
+ featureFactory.searchFeatureProvider.getSettingsIntelligencePkgName(this)
+}
diff --git a/src/com/android/settings/spa/search/SpaSearchRepository.kt b/src/com/android/settings/spa/search/SpaSearchRepository.kt
new file mode 100644
index 0000000..d37c50c
--- /dev/null
+++ b/src/com/android/settings/spa/search/SpaSearchRepository.kt
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.search
+
+import android.content.Context
+import android.provider.SearchIndexableResource
+import android.util.Log
+import androidx.annotation.VisibleForTesting
+import com.android.settingslib.search.Indexable
+import com.android.settingslib.search.SearchIndexableData
+import com.android.settingslib.search.SearchIndexableRaw
+import com.android.settingslib.spa.framework.common.SettingsPageProvider
+import com.android.settingslib.spa.framework.common.SpaEnvironment
+import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
+
+class SpaSearchRepository(
+ private val spaEnvironment: SpaEnvironment = SpaEnvironmentFactory.instance,
+) {
+ fun getSearchIndexableDataList(): List<SearchIndexableData> {
+ Log.d(TAG, "getSearchIndexableDataList")
+ return spaEnvironment.pageProviderRepository.value.getAllProviders().mapNotNull { page ->
+ if (page is SearchablePage) {
+ page.createSearchIndexableData(page::getSearchableTitles)
+ } else null
+ }
+ }
+
+ companion object {
+ private const val TAG = "SpaSearchRepository"
+
+ @VisibleForTesting
+ fun SettingsPageProvider.createSearchIndexableData(
+ titlesProvider: (context: Context) -> List<String>,
+ ): SearchIndexableData {
+ val searchIndexProvider =
+ object : Indexable.SearchIndexProvider {
+ override fun getXmlResourcesToIndex(
+ context: Context,
+ enabled: Boolean,
+ ): List<SearchIndexableResource> = emptyList()
+
+ override fun getRawDataToIndex(
+ context: Context,
+ enabled: Boolean,
+ ): List<SearchIndexableRaw> = emptyList()
+
+ override fun getDynamicRawDataToIndex(
+ context: Context,
+ enabled: Boolean,
+ ): List<SearchIndexableRaw> =
+ titlesProvider(context).map { title ->
+ createSearchIndexableRaw(context, title)
+ }
+
+ override fun getNonIndexableKeys(context: Context): List<String> = emptyList()
+ }
+ return SearchIndexableData(this::class.java, searchIndexProvider)
+ }
+
+ private fun SettingsPageProvider.createSearchIndexableRaw(context: Context, title: String) =
+ SearchIndexableRaw(context).apply {
+ key = name
+ this.title = title
+ intentAction = SEARCH_LANDING_ACTION
+ packageName = context.packageName
+ className = SpaSearchLandingActivity::class.qualifiedName
+ }
+
+ private const val SEARCH_LANDING_ACTION = "android.settings.SPA_SEARCH_LANDING"
+ }
+}
diff --git a/src/com/android/settings/wfd/WifiDisplayPreferenceController.java b/src/com/android/settings/wfd/WifiDisplayPreferenceController.java
index b15396b..bef16f8 100644
--- a/src/com/android/settings/wfd/WifiDisplayPreferenceController.java
+++ b/src/com/android/settings/wfd/WifiDisplayPreferenceController.java
@@ -65,7 +65,6 @@
public WifiDisplayPreferenceController(Context context, String key) {
super(context, key);
mRouter = context.getSystemService(MediaRouter.class);
- mRouter.setRouterGroupId(MediaRouter.MIRRORING_GROUP_ID);
}
@Override
diff --git a/src/com/android/settings/wifi/AddWifiNetworkPreference.java b/src/com/android/settings/wifi/AddWifiNetworkPreference.java
index 999f4a4..ea22954 100644
--- a/src/com/android/settings/wifi/AddWifiNetworkPreference.java
+++ b/src/com/android/settings/wifi/AddWifiNetworkPreference.java
@@ -26,11 +26,13 @@
import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
import com.android.settings.wifi.dpp.WifiDppUtils;
import com.android.settingslib.RestrictedPreference;
+import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils;
/**
* The Preference for users to add Wi-Fi networks in WifiSettings
@@ -53,7 +55,7 @@
setTitle(R.string.wifi_add_network);
mScanIconDrawable = getDrawable(R.drawable.ic_scan_24dp);
- checkRestrictionAndSetDisabled(UserManager.DISALLOW_ADD_WIFI_CONFIG);
+ checkRestrictionAndSetDisabled();
}
@Override
@@ -80,4 +82,15 @@
}
return buttonIcon;
}
+
+ @VisibleForTesting
+ void checkRestrictionAndSetDisabled() {
+ checkRestrictionAndSetDisabled(UserManager.DISALLOW_ADD_WIFI_CONFIG);
+ if (isDisabledByAdmin()) {
+ return;
+ }
+ if (!WifiEnterpriseRestrictionUtils.isAddWifiConfigAllowed(getContext())) {
+ setEnabled(false);
+ }
+ }
}
diff --git a/src/com/android/settings/wifi/WepLessSecureWarningController.kt b/src/com/android/settings/wifi/WepLessSecureWarningController.kt
new file mode 100644
index 0000000..8eba199
--- /dev/null
+++ b/src/com/android/settings/wifi/WepLessSecureWarningController.kt
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.wifi
+
+import android.content.Context
+import com.android.settings.core.BasePreferenceController
+import com.android.wifitrackerlib.WifiEntry
+
+class WepLessSecureWarningController (context: Context, preferenceKey: String) :
+ BasePreferenceController(context, preferenceKey) {
+
+ private var availabilityStatus: Int = CONDITIONALLY_UNAVAILABLE
+
+ override fun getAvailabilityStatus(): Int = availabilityStatus
+
+ fun setWifiEntry(entry: WifiEntry) {
+ availabilityStatus = when(entry.securityTypes.contains(WifiEntry.SECURITY_WEP)) {
+ true -> AVAILABLE
+ else -> CONDITIONALLY_UNAVAILABLE
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index eb0b40a..3ec5bb2 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -51,6 +51,7 @@
import com.android.settings.dashboard.RestrictedDashboardFragment;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.wifi.WepLessSecureWarningController;
import com.android.settings.wifi.WifiConfigUiBase2;
import com.android.settings.wifi.WifiDialog2;
import com.android.settings.wifi.WifiUtils;
@@ -132,6 +133,8 @@
.setWifiEntry(mNetworkDetailsTracker.getWifiEntry());
use(ServerNamePreferenceController.class)
.setWifiEntry(mNetworkDetailsTracker.getWifiEntry());
+ use(WepLessSecureWarningController.class)
+ .setWifiEntry(mNetworkDetailsTracker.getWifiEntry());
}
@Override
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
index 1213b0d..42a74dd 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
@@ -44,6 +44,7 @@
import com.android.internal.app.chooser.DisplayResolveInfo;
import com.android.internal.app.chooser.TargetInfo;
import com.android.settings.R;
+import com.android.settings.flags.Flags;
import com.android.settingslib.qrcode.QrCodeGenerator;
import com.google.zxing.WriterException;
@@ -69,6 +70,10 @@
@Override
public int getMetricsCategory() {
+ if (Flags.enableWifiSharingRuntimeFragment()) {
+ return SettingsEnums.SETTINGS_WIFI_DPP_QR_SHARING;
+ }
+
return SettingsEnums.SETTINGS_WIFI_DPP_CONFIGURATOR;
}
diff --git a/tests/Enable16KbTests/src/com/android/test/Enable16KbTest.java b/tests/Enable16KbTests/src/com/android/test/Enable16KbTest.java
index b611d61..e4ebdef 100644
--- a/tests/Enable16KbTests/src/com/android/test/Enable16KbTest.java
+++ b/tests/Enable16KbTests/src/com/android/test/Enable16KbTest.java
@@ -76,11 +76,13 @@
installTestApp();
// Enable developer option and switch to 16kb kernel and Check page size
+ getDevice().enableAdbRoot();
runTestAndWait(SWITCH_TO_16KB);
result = getDevice().executeShellCommand("getconf PAGE_SIZE");
assertEquals("16384", result.strip());
// switch back to 4kb kernel and check page size
+ getDevice().enableAdbRoot();
runTestAndWait(SWITCH_TO_4KB);
result = getDevice().executeShellCommand("getconf PAGE_SIZE");
assertEquals("4096", result.strip());
diff --git a/tests/Enable16KbTests/test_16kb_app/src/com/android/settings/development/test/Enable16KbDeviceTest.java b/tests/Enable16KbTests/test_16kb_app/src/com/android/settings/development/test/Enable16KbDeviceTest.java
index e5ccbb9..9e489cf 100644
--- a/tests/Enable16KbTests/test_16kb_app/src/com/android/settings/development/test/Enable16KbDeviceTest.java
+++ b/tests/Enable16KbTests/test_16kb_app/src/com/android/settings/development/test/Enable16KbDeviceTest.java
@@ -68,6 +68,8 @@
throw new RuntimeException("failed to freeze device orientation", e);
}
+ mDevice.executeShellCommand("am start -a com.android.setupwizard.FOUR_CORNER_EXIT");
+ mDevice.waitForWindowUpdate(null, TIMEOUT);
mDevice.executeShellCommand("input keyevent KEYCODE_WAKEUP");
mDevice.executeShellCommand("wm dismiss-keyguard");
}
@@ -150,6 +152,7 @@
private void openPersistentNotification(String title) {
mDevice.openNotification();
+ mDevice.waitForWindowUpdate(null, TIMEOUT);
verifyTextOnScreen(title);
mDevice.wait(Until.findObject(By.text(title)), TIMEOUT).click();
mDevice.waitForWindowUpdate(null, TIMEOUT);
diff --git a/tests/robotests/src/com/android/settings/MainClearTest.java b/tests/robotests/src/com/android/settings/MainClearTest.java
index 1136d94..187fce1 100644
--- a/tests/robotests/src/com/android/settings/MainClearTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearTest.java
@@ -138,7 +138,11 @@
// Make scrollView only have one child
when(mScrollView.getChildAt(0)).thenReturn(mLinearLayout);
when(mScrollView.getChildCount()).thenReturn(1);
- doReturn(mActivity).when(mMainClear).getActivity();
+ doReturn(mMockActivity).when(mMainClear).getActivity();
+ when(mMockActivity.getSystemService(BiometricManager.class)).thenReturn(mBiometricManager);
+ when(mBiometricManager.canAuthenticate(
+ BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ .thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
}
@After
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
index f108b8e..b74f38e 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
@@ -16,10 +16,13 @@
package com.android.settings.accessibility;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.settings.accessibility.AccessibilityShortcutPreferenceFragment.KEY_SAVED_QS_TOOLTIP_RESHOW;
import static com.android.settings.accessibility.AccessibilityShortcutPreferenceFragment.KEY_SAVED_USER_SHORTCUT_TYPE;
import static com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
-import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import static com.google.common.truth.Truth.assertThat;
@@ -128,7 +131,7 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
mFragment.getComponentName().flattenToString());
// Compare to default UserShortcutType
- assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE);
+ assertThat(expectedType).isEqualTo(SOFTWARE);
}
@Test
@@ -140,20 +143,20 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
mFragment.getComponentName().flattenToString());
- assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
+ assertThat(expectedType).isEqualTo(SOFTWARE | HARDWARE);
}
@Test
public void updateShortcutPreferenceData_hasValueInSharedPreference_assignToVariable() {
final PreferredShortcut hardwareShortcut = new PreferredShortcut(
- PLACEHOLDER_COMPONENT_NAME.flattenToString(), UserShortcutType.HARDWARE);
+ PLACEHOLDER_COMPONENT_NAME.flattenToString(), HARDWARE);
putUserShortcutTypeIntoSharedPreference(mContext, hardwareShortcut);
mFragment.updateShortcutPreferenceData();
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
mFragment.getComponentName().flattenToString());
- assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE);
+ assertThat(expectedType).isEqualTo(HARDWARE);
}
@Test
@@ -171,7 +174,7 @@
mFragment.setupEditShortcutDialog(dialog);
final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(UserShortcutType.EMPTY);
+ assertThat(checkboxValue).isEqualTo(DEFAULT);
}
@Test
@@ -184,7 +187,7 @@
final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
null);
final PreferredShortcut hardwareShortcut = new PreferredShortcut(
- PLACEHOLDER_COMPONENT_NAME.flattenToString(), UserShortcutType.HARDWARE);
+ PLACEHOLDER_COMPONENT_NAME.flattenToString(), HARDWARE);
mFragment.mShortcutPreference = shortcutPreference;
PreferredShortcuts.saveUserShortcutType(mContext, hardwareShortcut);
@@ -192,7 +195,7 @@
mFragment.setupEditShortcutDialog(dialog);
final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(UserShortcutType.HARDWARE);
+ assertThat(checkboxValue).isEqualTo(HARDWARE);
}
@Test
@@ -209,7 +212,7 @@
mFragment.mShortcutPreference = shortcutPreference;
savedInstanceState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE,
- UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
+ SOFTWARE | HARDWARE);
mFragment.onAttach(mContext);
mFragment.onCreate(savedInstanceState);
mFragment.setupEditShortcutDialog(dialog);
@@ -218,7 +221,7 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
mFragment.getComponentName().flattenToString());
- assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
+ assertThat(expectedType).isEqualTo(SOFTWARE | HARDWARE);
}
@Test
@@ -290,7 +293,7 @@
public void getShortcutTypeSummary_shortcutSummaryIsCorrectlySet() {
final PreferredShortcut userPreferredShortcut = new PreferredShortcut(
PLACEHOLDER_COMPONENT_NAME.flattenToString(),
- UserShortcutType.HARDWARE | UserShortcutType.QUICK_SETTINGS);
+ HARDWARE | QUICK_SETTINGS);
putUserShortcutTypeIntoSharedPreference(mContext, userPreferredShortcut);
final ShortcutPreference shortcutPreference =
new ShortcutPreference(mContext, /* attrs= */ null);
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutsTutorialTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutsTutorialTest.java
index a5aceed..d5c1fd1 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutsTutorialTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutsTutorialTest.java
@@ -16,11 +16,15 @@
package com.android.settings.accessibility;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TWOFINGER_DOUBLETAP;
import static com.android.settings.accessibility.AccessibilityShortcutsTutorial.createAccessibilityTutorialDialog;
import static com.android.settings.accessibility.AccessibilityShortcutsTutorial.createAccessibilityTutorialDialogForSetupWizard;
import static com.android.settings.accessibility.AccessibilityShortcutsTutorial.createShortcutTutorialPages;
import static com.android.settings.accessibility.AccessibilityShortcutsTutorial.showGestureNavigationTutorialDialog;
-import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import static com.google.common.truth.Truth.assertThat;
@@ -99,7 +103,7 @@
@Test
public void createTutorialPages_turnOnTripleTapShortcut_hasOnePage() {
- mShortcutTypes |= UserShortcutType.TRIPLETAP;
+ mShortcutTypes |= TRIPLETAP;
final AlertDialog alertDialog =
createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -114,7 +118,7 @@
@Test
@EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
public void createTutorialPages_turnOnTwoFingerTripleTapShortcut_hasOnePage() {
- mShortcutTypes |= UserShortcutType.TWOFINGER_DOUBLETAP;
+ mShortcutTypes |= TWOFINGER_DOUBLETAP;
final AlertDialog alertDialog =
createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -129,7 +133,7 @@
@Test
@EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
public void createTutorialPages_turnOnQuickSettingShortcut_hasOnePage() {
- mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+ mShortcutTypes |= QUICK_SETTINGS;
final AlertDialog alertDialog =
createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -143,7 +147,7 @@
@Test
public void createTutorialPages_turnOnSoftwareShortcut_hasOnePage() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
final AlertDialog alertDialog =
createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -157,8 +161,8 @@
@Test
public void createTutorialPages_turnOnSoftwareAndHardwareShortcuts_hasTwoPages() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
- mShortcutTypes |= UserShortcutType.HARDWARE;
+ mShortcutTypes |= SOFTWARE;
+ mShortcutTypes |= HARDWARE;
final AlertDialog alertDialog =
createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -172,7 +176,7 @@
@Test
public void createTutorialPages_turnOnA11yGestureShortcut_linkButtonShownWithText() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
AccessibilityTestUtils.setSoftwareShortcutMode(
mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
@@ -191,7 +195,7 @@
@Test
public void createTutorialPages_turnOnA11yNavButtonShortcut_linkButtonShownWithText() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
AccessibilityTestUtils.setSoftwareShortcutMode(
mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
@@ -210,7 +214,7 @@
@Test
public void createTutorialPages_turnOnFloatingButtonShortcut_linkButtonShownWithText() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
AccessibilityTestUtils.setSoftwareShortcutMode(
mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ true);
@@ -228,7 +232,7 @@
@Test
public void createTutorialPages_turnOnHardwareShortcut_linkButtonGone() {
- mShortcutTypes |= UserShortcutType.HARDWARE;
+ mShortcutTypes |= HARDWARE;
final AlertDialog alertDialog =
createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -241,7 +245,7 @@
@Test
public void createTutorialPages_turnOnSoftwareShortcut_showFromSuW_linkButtonGone() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
final AlertDialog alertDialog =
createAccessibilityTutorialDialogForSetupWizard(
@@ -256,7 +260,7 @@
@Test
@EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
public void createAccessibilityTutorialDialog_qsShortcut_inSuwTalkbackOn_verifyText() {
- mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+ mShortcutTypes |= QUICK_SETTINGS;
setTouchExplorationEnabled(true);
final String expectedTitle = mContext.getString(
R.string.accessibility_tutorial_dialog_title_quick_setting);
@@ -288,7 +292,7 @@
@Test
@EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
public void createAccessibilityTutorialDialog_qsShortcut_notInSuwTalkbackOn_verifyText() {
- mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+ mShortcutTypes |= QUICK_SETTINGS;
setTouchExplorationEnabled(true);
final String expectedTitle = mContext.getString(
R.string.accessibility_tutorial_dialog_title_quick_setting);
@@ -314,7 +318,7 @@
@Test
@EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
public void createAccessibilityTutorialDialog_qsShortcut_inSuwTalkbackOff_verifyText() {
- mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+ mShortcutTypes |= QUICK_SETTINGS;
setTouchExplorationEnabled(false);
final String expectedTitle = mContext.getString(
R.string.accessibility_tutorial_dialog_title_quick_setting);
@@ -345,7 +349,7 @@
@Test
@EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
public void createAccessibilityTutorialDialog_qsShortcut_notInSuwTalkbackOff_verifyText() {
- mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+ mShortcutTypes |= QUICK_SETTINGS;
setTouchExplorationEnabled(false);
final String expectedTitle = mContext.getString(
R.string.accessibility_tutorial_dialog_title_quick_setting);
@@ -370,7 +374,7 @@
@Test
public void createAccessibilityTutorialDialog_volumeKeysShortcut_verifyText() {
- mShortcutTypes |= UserShortcutType.HARDWARE;
+ mShortcutTypes |= HARDWARE;
final String expectedTitle = mContext.getString(
R.string.accessibility_tutorial_dialog_title_volume);
final CharSequence expectedInstruction = mContext.getString(
@@ -390,7 +394,7 @@
@Test
public void createAccessibilityTutorialDialog_tripleTapShortcut_verifyText() {
- mShortcutTypes |= UserShortcutType.TRIPLETAP;
+ mShortcutTypes |= TRIPLETAP;
final String expectedTitle = mContext.getString(
R.string.accessibility_tutorial_dialog_title_triple);
final CharSequence expectedInstruction = mContext.getString(
@@ -411,7 +415,7 @@
@Test
@EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
public void createAccessibilityTutorialDialog_twoFingerDoubleTapShortcut_verifyText() {
- mShortcutTypes |= UserShortcutType.TWOFINGER_DOUBLETAP;
+ mShortcutTypes |= TWOFINGER_DOUBLETAP;
final int numFingers = 2;
final String expectedTitle = mContext.getString(
R.string.accessibility_tutorial_dialog_title_two_finger_double, numFingers);
@@ -432,7 +436,7 @@
@Test
public void createAccessibilityTutorialDialog_floatingButtonShortcut_verifyText() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
AccessibilityTestUtils.setSoftwareShortcutMode(
mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ true);
final String expectedTitle = mContext.getString(
@@ -454,7 +458,7 @@
@Test
public void createAccessibilityTutorialDialog_navA11yButtonShortcut_verifyText() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
AccessibilityTestUtils.setSoftwareShortcutMode(
mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
final String expectedTitle = mContext.getString(
@@ -476,7 +480,7 @@
@Test
public void createAccessibilityTutorialDialog_gestureShortcut_talkbackOn_verifyText() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
setTouchExplorationEnabled(true);
AccessibilityTestUtils.setSoftwareShortcutMode(
mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
@@ -501,7 +505,7 @@
@Test
public void createAccessibilityTutorialDialog_gestureShortcut_talkbackOff_verifyText() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
setTouchExplorationEnabled(false);
AccessibilityTestUtils.setSoftwareShortcutMode(
mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
@@ -526,7 +530,7 @@
@Test
public void performClickOnPositiveButton_turnOnSoftwareShortcut_dismiss() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
final AlertDialog alertDialog =
createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
alertDialog.show();
@@ -540,7 +544,7 @@
@Test
public void performClickOnPositiveButton_turnOnSoftwareShortcut_callOnClickListener() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
final AlertDialog alertDialog =
createAccessibilityTutorialDialog(
mContext, mShortcutTypes, mOnClickListener, FAKE_FEATURE_NAME);
@@ -555,7 +559,7 @@
@Test
public void performClickOnNegativeButton_turnOnSoftwareShortcut_directToSettingsPage() {
- mShortcutTypes |= UserShortcutType.SOFTWARE;
+ mShortcutTypes |= SOFTWARE;
Activity activity = Robolectric.buildActivity(Activity.class).create().get();
final AlertDialog alertDialog =
createAccessibilityTutorialDialog(activity, mShortcutTypes, FAKE_FEATURE_NAME);
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java
index 2d5deeb..c036432 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java
@@ -16,6 +16,12 @@
package com.android.settings.accessibility;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TWOFINGER_DOUBLETAP;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
@@ -39,9 +45,9 @@
import androidx.test.core.app.ApplicationProvider;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
import com.android.internal.accessibility.util.ShortcutUtils;
import com.android.settings.R;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.android.settings.testutils.AccessibilityTestUtils;
import org.junit.Before;
@@ -159,52 +165,52 @@
@Test
public void hasValueInSettings_putValue_hasValue() {
- setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
- assertThat(AccessibilityUtil.hasValueInSettings(mContext, UserShortcutType.SOFTWARE,
+ assertThat(AccessibilityUtil.hasValueInSettings(mContext, SOFTWARE,
MOCK_COMPONENT_NAME)).isTrue();
}
@Test
public void getUserShortcutTypeFromSettings_putOneValue_hasValue() {
- setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
final int shortcutTypes = AccessibilityUtil.getUserShortcutTypesFromSettings(mContext,
MOCK_COMPONENT_NAME);
assertThat(shortcutTypes).isEqualTo(
- UserShortcutType.SOFTWARE
+ SOFTWARE
);
}
@Test
public void getUserShortcutTypeFromSettings_putTwoValues_hasValue() {
- setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
- setShortcut(UserShortcutType.HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
final int shortcutTypes = AccessibilityUtil.getUserShortcutTypesFromSettings(mContext,
MOCK_COMPONENT_NAME);
assertThat(shortcutTypes).isEqualTo(
- UserShortcutType.SOFTWARE
- | UserShortcutType.HARDWARE
+ SOFTWARE
+ | HARDWARE
);
}
@Test
@EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
public void getUserShortcutTypeFromSettings_threeShortcutTypesChosen() {
- setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
- setShortcut(UserShortcutType.HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
- setShortcut(UserShortcutType.QUICK_SETTINGS, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(QUICK_SETTINGS, MOCK_COMPONENT_NAME.flattenToString());
final int shortcutTypes = AccessibilityUtil.getUserShortcutTypesFromSettings(mContext,
MOCK_COMPONENT_NAME);
assertThat(shortcutTypes).isEqualTo(
- UserShortcutType.SOFTWARE
- | UserShortcutType.HARDWARE
- | UserShortcutType.QUICK_SETTINGS
+ SOFTWARE
+ | HARDWARE
+ | QUICK_SETTINGS
);
}
@@ -212,7 +218,7 @@
@DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
public void optInAllValuesToSettings_optInValue_haveMatchString() {
clearShortcuts();
- int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE;
+ int shortcutTypes = SOFTWARE | HARDWARE;
AccessibilityUtil.optInAllValuesToSettings(mContext, shortcutTypes, MOCK_COMPONENT_NAME);
@@ -229,8 +235,8 @@
AccessibilityManager a11yManager =
AccessibilityTestUtils.setupMockAccessibilityManager(mContext);
Set<String> shortcutTargets = Set.of(MOCK_COMPONENT_NAME.flattenToString());
- int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE
- | UserShortcutType.QUICK_SETTINGS;
+ int shortcutTypes = SOFTWARE | HARDWARE
+ | QUICK_SETTINGS;
AccessibilityUtil.optInAllValuesToSettings(mContext, shortcutTypes, MOCK_COMPONENT_NAME);
@@ -243,9 +249,9 @@
@Test
@DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
public void optInValueToSettings_optInValue_haveMatchString() {
- setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
- AccessibilityUtil.optInValueToSettings(mContext, UserShortcutType.SOFTWARE,
+ AccessibilityUtil.optInValueToSettings(mContext, SOFTWARE,
MOCK_COMPONENT_NAME2);
assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
@@ -261,10 +267,10 @@
Set<String> shortcutTargets = Set.of(MOCK_COMPONENT_NAME2.flattenToString());
AccessibilityUtil.optInValueToSettings(
- mContext, UserShortcutType.HARDWARE, MOCK_COMPONENT_NAME2);
+ mContext, HARDWARE, MOCK_COMPONENT_NAME2);
verify(a11yManager).enableShortcutsForTargets(
- /* enable= */ true, UserShortcutType.HARDWARE,
+ /* enable= */ true, HARDWARE,
shortcutTargets, UserHandle.myUserId());
verifyNoMoreInteractions(a11yManager);
}
@@ -272,11 +278,11 @@
@Test
@DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
public void optInValueToSettings_optInTwoValues_haveMatchString() {
- setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
- AccessibilityUtil.optInValueToSettings(mContext, UserShortcutType.SOFTWARE,
+ AccessibilityUtil.optInValueToSettings(mContext, SOFTWARE,
MOCK_COMPONENT_NAME2);
- AccessibilityUtil.optInValueToSettings(mContext, UserShortcutType.SOFTWARE,
+ AccessibilityUtil.optInValueToSettings(mContext, SOFTWARE,
MOCK_COMPONENT_NAME2);
assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
@@ -287,10 +293,10 @@
@Test
@DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
public void optOutAllValuesToSettings_optOutValue_emptyString() {
- setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
- setShortcut(UserShortcutType.HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
int shortcutTypes =
- UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP;
+ SOFTWARE | HARDWARE | TRIPLETAP;
AccessibilityUtil.optOutAllValuesFromSettings(mContext, shortcutTypes,
MOCK_COMPONENT_NAME);
@@ -305,8 +311,8 @@
AccessibilityManager a11yManager =
AccessibilityTestUtils.setupMockAccessibilityManager(mContext);
int shortcutTypes =
- UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE
- | UserShortcutType.QUICK_SETTINGS;
+ SOFTWARE | HARDWARE
+ | QUICK_SETTINGS;
Set<String> shortcutTargets = Set.of(MOCK_COMPONENT_NAME.flattenToString());
AccessibilityUtil.optOutAllValuesFromSettings(mContext, shortcutTypes,
@@ -322,9 +328,9 @@
@Test
@DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
public void optOutValueFromSettings_optOutValue_emptyString() {
- setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+ setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
- AccessibilityUtil.optOutValueFromSettings(mContext, UserShortcutType.SOFTWARE,
+ AccessibilityUtil.optOutValueFromSettings(mContext, SOFTWARE,
MOCK_COMPONENT_NAME);
assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEmpty();
@@ -333,10 +339,10 @@
@Test
@DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
public void optOutValueFromSettings_optOutValue_haveMatchString() {
- setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString(),
+ setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString(),
MOCK_COMPONENT_NAME2.flattenToString());
- AccessibilityUtil.optOutValueFromSettings(mContext, UserShortcutType.SOFTWARE,
+ AccessibilityUtil.optOutValueFromSettings(mContext, SOFTWARE,
MOCK_COMPONENT_NAME2);
assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
@@ -351,36 +357,36 @@
Set<String> shortcutTargets = Set.of(MOCK_COMPONENT_NAME.flattenToString());
AccessibilityUtil.optOutValueFromSettings(
- mContext, UserShortcutType.QUICK_SETTINGS, MOCK_COMPONENT_NAME);
+ mContext, QUICK_SETTINGS, MOCK_COMPONENT_NAME);
verify(a11yManager).enableShortcutsForTargets(
- /* enable= */ false, UserShortcutType.QUICK_SETTINGS,
+ /* enable= */ false, QUICK_SETTINGS,
shortcutTargets, UserHandle.myUserId());
verifyNoMoreInteractions(a11yManager);
}
@Test
public void convertKeyFromSettings_shortcutTypeSoftware() {
- assertThat(AccessibilityUtil.convertKeyFromSettings(UserShortcutType.SOFTWARE))
+ assertThat(AccessibilityUtil.convertKeyFromSettings(SOFTWARE))
.isEqualTo(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS);
}
@Test
public void convertKeyFromSettings_shortcutTypeHardware() {
- assertThat(AccessibilityUtil.convertKeyFromSettings(UserShortcutType.HARDWARE))
+ assertThat(AccessibilityUtil.convertKeyFromSettings(HARDWARE))
.isEqualTo(Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE);
}
@Test
public void convertKeyFromSettings_shortcutTypeTripleTap() {
- assertThat(AccessibilityUtil.convertKeyFromSettings(UserShortcutType.TRIPLETAP))
+ assertThat(AccessibilityUtil.convertKeyFromSettings(TRIPLETAP))
.isEqualTo(Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
}
@Test
@EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
public void convertKeyFromSettings_shortcutTypeMultiFingersMultiTap() {
- assertThat(AccessibilityUtil.convertKeyFromSettings(UserShortcutType.TWOFINGER_DOUBLETAP))
+ assertThat(AccessibilityUtil.convertKeyFromSettings(TWOFINGER_DOUBLETAP))
.isEqualTo(
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED);
}
@@ -388,7 +394,7 @@
@Test
@EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
public void convertKeyFromSettings_shortcutTypeQuickSettings() {
- assertThat(AccessibilityUtil.convertKeyFromSettings(UserShortcutType.QUICK_SETTINGS))
+ assertThat(AccessibilityUtil.convertKeyFromSettings(QUICK_SETTINGS))
.isEqualTo(Settings.Secure.ACCESSIBILITY_QS_TARGETS);
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
index ce2a571..d74794f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
@@ -28,23 +28,32 @@
import static org.robolectric.Shadows.shadowOf;
import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.util.AttributeSet;
import android.widget.SeekBar;
+import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowSystemSettings;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import java.util.Locale;
+
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {
ShadowSystemSettings.class,
})
public class BalanceSeekBarTest {
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
// Fix the maximum process value to 200 for testing the BalanceSeekBar.
// It affects the SeekBar value of center(100) and snapThreshold(200 * SNAP_TO_PERCENTAGE).
private static final int MAX_PROGRESS_VALUE = 200;
@@ -143,6 +152,58 @@
assertThat(mSeekBar.getProgress()).isEqualTo(progressWithoutThreshold);
}
+ @Test
+ @EnableFlags(Flags.FLAG_AUDIO_BALANCE_STATE_DESCRIPTION)
+ public void onProgressChanged_getStateDescription_centered_leftFirst() {
+ // Seek bar centered
+ int progress = (int) (0.50f * MAX_PROGRESS_VALUE);
+ mSeekBar.setMax(MAX_PROGRESS_VALUE);
+
+ mProxySeekBarListener.onProgressChanged(mSeekBar, progress, true);
+
+ assertThat(mSeekBar.getStateDescription()).isEqualTo(
+ mContext.getString(R.string.audio_seek_bar_state_left_first, 50, 50));
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_AUDIO_BALANCE_STATE_DESCRIPTION)
+ public void onProgressChanged_getStateDescription_centered_rtl_rightFirst() {
+ // RTL layout
+ mContext.getResources().getConfiguration().setLayoutDirection(new Locale("iw", "IL"));
+ // Seek bar centered
+ int progress = (int) (0.50f * MAX_PROGRESS_VALUE);
+ mSeekBar.setMax(MAX_PROGRESS_VALUE);
+
+ mProxySeekBarListener.onProgressChanged(mSeekBar, progress, true);
+
+ assertThat(mSeekBar.getStateDescription()).isEqualTo(
+ mContext.getString(R.string.audio_seek_bar_state_right_first, 50, 50));
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_AUDIO_BALANCE_STATE_DESCRIPTION)
+ public void onProgressChanged_getStateDescription_25percent_leftFirst() {
+ // Seek bar 3/4th toward the left
+ int progress = (int) (0.25f * MAX_PROGRESS_VALUE);
+ mSeekBar.setMax(MAX_PROGRESS_VALUE);
+ mProxySeekBarListener.onProgressChanged(mSeekBar, progress, true);
+
+ assertThat(mSeekBar.getStateDescription()).isEqualTo(
+ mContext.getString(R.string.audio_seek_bar_state_left_first, 75, 25));
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_AUDIO_BALANCE_STATE_DESCRIPTION)
+ public void onProgressChanged_getStateDescription_75percent_rightFirst() {
+ // Seek bar 3/4th toward the right
+ int progress = (int) (0.75f * MAX_PROGRESS_VALUE);
+ mSeekBar.setMax(MAX_PROGRESS_VALUE);
+ mProxySeekBarListener.onProgressChanged(mSeekBar, progress, true);
+
+ assertThat(mSeekBar.getStateDescription()).isEqualTo(
+ mContext.getString(R.string.audio_seek_bar_state_right_first, 75, 25));
+ }
+
// method to get the center from BalanceSeekBar for testing setMax().
private int getBalanceSeekBarCenter(BalanceSeekBar seekBar) {
return seekBar.getMax() / 2;
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
index 832a313..569109c 100644
--- a/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
@@ -88,10 +88,9 @@
@Test
public void getAvailabilityStatus_featureSupported_available() {
mSetFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
- when(mResources.getBoolean(R.bool.config_keyboard_vibration_supported)).thenReturn(true);
- when(mResources.getFloat(
- com.android.internal.R.dimen.config_keyboardHapticFeedbackFixedAmplitude))
- .thenReturn(0.8f);
+ when(mResources.getBoolean(
+ com.android.internal.R.bool.config_keyboardVibrationSettingsSupported))
+ .thenReturn(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@@ -99,7 +98,9 @@
@Test
public void getAvailabilityStatus_featureNotSupported_unavailable() {
mSetFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
- when(mResources.getBoolean(R.bool.config_keyboard_vibration_supported)).thenReturn(false);
+ when(mResources.getBoolean(
+ com.android.internal.R.bool.config_keyboardVibrationSettingsSupported))
+ .thenReturn(false);
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
}
@@ -107,7 +108,9 @@
@Test
public void getAvailabilityStatus_keyboardCategoryDisabled_unavailable() {
mSetFlagsRule.disableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
- when(mResources.getBoolean(R.bool.config_keyboard_vibration_supported)).thenReturn(true);
+ when(mResources.getBoolean(
+ com.android.internal.R.bool.config_keyboardVibrationSettingsSupported))
+ .thenReturn(true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index af94723..04ff4fe 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
@@ -16,6 +16,10 @@
package com.android.settings.accessibility;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_SAVED_USER_SHORTCUT_TYPE;
import static com.google.common.truth.Truth.assertThat;
@@ -57,7 +61,6 @@
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.android.settings.flags.Flags;
import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settingslib.widget.TopIntroPreference;
@@ -204,7 +207,7 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
mFragment.mComponentName.flattenToString());
// Compare to default UserShortcutType
- assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE);
+ assertThat(expectedType).isEqualTo(SOFTWARE);
}
@Test
@@ -219,21 +222,21 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
mFragment.mComponentName.flattenToString());
- assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
+ assertThat(expectedType).isEqualTo(SOFTWARE | HARDWARE);
}
@Test
public void updateShortcutPreferenceData_hasValueInSharedPreference_assignToVariable() {
mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
final PreferredShortcut hardwareShortcut = new PreferredShortcut(
- PLACEHOLDER_COMPONENT_NAME.flattenToString(), UserShortcutType.HARDWARE);
+ PLACEHOLDER_COMPONENT_NAME.flattenToString(), HARDWARE);
putUserShortcutTypeIntoSharedPreference(mContext, hardwareShortcut);
mFragment.updateShortcutPreferenceData();
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
mFragment.mComponentName.flattenToString());
- assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE);
+ assertThat(expectedType).isEqualTo(HARDWARE);
}
@Test
@@ -272,7 +275,7 @@
mFragment.setupEditShortcutDialog(dialog);
final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(UserShortcutType.EMPTY);
+ assertThat(checkboxValue).isEqualTo(DEFAULT);
}
@Test
@@ -283,7 +286,7 @@
final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
null);
final PreferredShortcut hardwareShortcut = new PreferredShortcut(
- PLACEHOLDER_COMPONENT_NAME.flattenToString(), UserShortcutType.HARDWARE);
+ PLACEHOLDER_COMPONENT_NAME.flattenToString(), HARDWARE);
mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
mFragment.mShortcutPreference = shortcutPreference;
@@ -292,7 +295,7 @@
mFragment.setupEditShortcutDialog(dialog);
final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(UserShortcutType.HARDWARE);
+ assertThat(checkboxValue).isEqualTo(HARDWARE);
}
@Test
@@ -308,7 +311,7 @@
mFragment.mShortcutPreference = shortcutPreference;
savedInstanceState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE,
- UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
+ SOFTWARE | HARDWARE);
mFragment.onCreate(savedInstanceState);
mFragment.setupEditShortcutDialog(dialog);
final int value = mFragment.getShortcutTypeCheckBoxValue();
@@ -316,7 +319,7 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
mFragment.mComponentName.flattenToString());
- assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
+ assertThat(expectedType).isEqualTo(SOFTWARE | HARDWARE);
}
@Test
@@ -470,7 +473,7 @@
public void getShortcutTypeSummary_shortcutSummaryIsCorrectlySet() {
final PreferredShortcut userPreferredShortcut = new PreferredShortcut(
PLACEHOLDER_COMPONENT_NAME.flattenToString(),
- UserShortcutType.HARDWARE | UserShortcutType.QUICK_SETTINGS);
+ HARDWARE | QUICK_SETTINGS);
putUserShortcutTypeIntoSharedPreference(mContext, userPreferredShortcut);
final ShortcutPreference shortcutPreference =
new ShortcutPreference(mContext, /* attrs= */ null);
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
index b801521..6f9981a 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
@@ -16,9 +16,14 @@
package com.android.settings.accessibility;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TWOFINGER_DOUBLETAP;
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
-import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import static com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_SAVED_USER_SHORTCUT_TYPE;
@@ -433,7 +438,7 @@
setMagnificationTripleTapEnabled(/* enabled= */ true);
assertThat(ToggleScreenMagnificationPreferenceFragment.hasMagnificationValuesInSettings(
- mContext, UserShortcutType.TRIPLETAP)).isTrue();
+ mContext, TRIPLETAP)).isTrue();
}
@Test
@@ -443,7 +448,7 @@
mContext.getContentResolver(), TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON);
assertThat(ToggleScreenMagnificationPreferenceFragment.hasMagnificationValuesInSettings(
- mContext, UserShortcutType.TWOFINGER_DOUBLETAP)).isTrue();
+ mContext, TWOFINGER_DOUBLETAP)).isTrue();
}
@Test
@@ -453,13 +458,13 @@
mContext.getContentResolver(), TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, OFF);
assertThat(ToggleScreenMagnificationPreferenceFragment.hasMagnificationValuesInSettings(
- mContext, UserShortcutType.TWOFINGER_DOUBLETAP)).isFalse();
+ mContext, TWOFINGER_DOUBLETAP)).isFalse();
}
@Test
@DisableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
public void optInAllValuesToSettings_optInValue_haveMatchString() {
- int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.TRIPLETAP;
+ int shortcutTypes = SOFTWARE | TRIPLETAP;
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
shortcutTypes);
@@ -473,24 +478,24 @@
@EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
public void optInAllValuesToSettings_optInValue_callA11yManager() {
int shortcutTypes =
- UserShortcutType.SOFTWARE | UserShortcutType.TRIPLETAP | UserShortcutType.HARDWARE
- | UserShortcutType.QUICK_SETTINGS;
+ SOFTWARE | TRIPLETAP | HARDWARE
+ | QUICK_SETTINGS;
Set<String> shortcutTargets = Set.of(MAGNIFICATION_CONTROLLER_NAME);
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
shortcutTypes);
verify(mAccessibilityManager).enableShortcutsForTargets(
- /* enable= */ true, UserShortcutType.SOFTWARE,
+ /* enable= */ true, SOFTWARE,
shortcutTargets, UserHandle.myUserId());
verify(mAccessibilityManager).enableShortcutsForTargets(
- /* enable= */ true, UserShortcutType.HARDWARE,
+ /* enable= */ true, HARDWARE,
shortcutTargets, UserHandle.myUserId());
verify(mAccessibilityManager).enableShortcutsForTargets(
- /* enable= */ true, UserShortcutType.QUICK_SETTINGS,
+ /* enable= */ true, QUICK_SETTINGS,
shortcutTargets, UserHandle.myUserId());
verify(mAccessibilityManager).enableShortcutsForTargets(
- /* enable= */ true, UserShortcutType.TRIPLETAP,
+ /* enable= */ true, TRIPLETAP,
shortcutTargets, UserHandle.myUserId());
verifyNoMoreInteractions(mAccessibilityManager);
}
@@ -499,7 +504,7 @@
@EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
@DisableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
public void optInAllValuesToSettings_twoFingerTripleTap_haveMatchString() {
- int shortcutTypes = UserShortcutType.TWOFINGER_DOUBLETAP;
+ int shortcutTypes = TWOFINGER_DOUBLETAP;
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
shortcutTypes);
@@ -514,7 +519,7 @@
putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, PLACEHOLDER_COMPONENT_NAME.flattenToString());
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
- UserShortcutType.SOFTWARE);
+ SOFTWARE);
assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
PLACEHOLDER_COMPONENT_NAME.flattenToString() + ":" + MAGNIFICATION_CONTROLLER_NAME);
@@ -526,7 +531,7 @@
ShadowSettings.ShadowSecure.reset();
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
- UserShortcutType.SOFTWARE);
+ SOFTWARE);
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
@@ -543,7 +548,7 @@
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
mContext,
- UserShortcutType.SOFTWARE);
+ SOFTWARE);
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
@@ -562,7 +567,7 @@
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
mContext,
- UserShortcutType.HARDWARE);
+ HARDWARE);
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size + 1)).isEqualTo(
@@ -580,7 +585,7 @@
ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
mContext,
- UserShortcutType.TRIPLETAP);
+ TRIPLETAP);
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size + 1)).isEqualTo(
@@ -595,7 +600,7 @@
putStringIntoSettings(HARDWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
setMagnificationTripleTapEnabled(/* enabled= */ true);
int shortcutTypes =
- UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP;
+ SOFTWARE | HARDWARE | TRIPLETAP;
ToggleScreenMagnificationPreferenceFragment.optOutAllMagnificationValuesFromSettings(
mContext, shortcutTypes);
@@ -613,19 +618,19 @@
putStringIntoSettings(HARDWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
setMagnificationTripleTapEnabled(/* enabled= */ true);
int shortcutTypes =
- UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP;
+ SOFTWARE | HARDWARE | TRIPLETAP;
ToggleScreenMagnificationPreferenceFragment.optOutAllMagnificationValuesFromSettings(
mContext, shortcutTypes);
verify(mAccessibilityManager).enableShortcutsForTargets(
- /* enable= */ false, UserShortcutType.SOFTWARE,
+ /* enable= */ false, SOFTWARE,
shortcutTargets, UserHandle.myUserId());
verify(mAccessibilityManager).enableShortcutsForTargets(
- /* enable= */ false, UserShortcutType.HARDWARE,
+ /* enable= */ false, HARDWARE,
shortcutTargets, UserHandle.myUserId());
verify(mAccessibilityManager).enableShortcutsForTargets(
- /* enable= */ false, UserShortcutType.TRIPLETAP,
+ /* enable= */ false, TRIPLETAP,
shortcutTargets, UserHandle.myUserId());
verifyNoMoreInteractions(mAccessibilityManager);
}
@@ -638,7 +643,7 @@
TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON);
ToggleScreenMagnificationPreferenceFragment.optOutAllMagnificationValuesFromSettings(
- mContext, UserShortcutType.TWOFINGER_DOUBLETAP);
+ mContext, TWOFINGER_DOUBLETAP);
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON)).isEqualTo(OFF);
@@ -651,7 +656,7 @@
PLACEHOLDER_COMPONENT_NAME.flattenToString() + ":" + MAGNIFICATION_CONTROLLER_NAME);
putStringIntoSettings(HARDWARE_SHORTCUT_KEY,
PLACEHOLDER_COMPONENT_NAME.flattenToString() + ":" + MAGNIFICATION_CONTROLLER_NAME);
- int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE;
+ int shortcutTypes = SOFTWARE | HARDWARE;
ToggleScreenMagnificationPreferenceFragment.optOutAllMagnificationValuesFromSettings(
mContext, shortcutTypes);
@@ -671,7 +676,7 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
MAGNIFICATION_CONTROLLER_NAME);
// Compare to default UserShortcutType
- assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE);
+ assertThat(expectedType).isEqualTo(SOFTWARE);
}
@Test
@@ -684,13 +689,13 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
MAGNIFICATION_CONTROLLER_NAME);
- assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.TRIPLETAP);
+ assertThat(expectedType).isEqualTo(SOFTWARE | TRIPLETAP);
}
@Test
public void updateShortcutPreferenceData_hasValueInSharedPreference_assignToVariable() {
final PreferredShortcut tripleTapShortcut = new PreferredShortcut(
- MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TRIPLETAP);
+ MAGNIFICATION_CONTROLLER_NAME, TRIPLETAP);
putUserShortcutTypeIntoSharedPreference(mContext, tripleTapShortcut);
mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
@@ -698,7 +703,7 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
MAGNIFICATION_CONTROLLER_NAME);
- assertThat(expectedType).isEqualTo(UserShortcutType.TRIPLETAP);
+ assertThat(expectedType).isEqualTo(TRIPLETAP);
}
@Test
@@ -712,14 +717,14 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
MAGNIFICATION_CONTROLLER_NAME);
- assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGER_DOUBLETAP);
+ assertThat(expectedType).isEqualTo(TWOFINGER_DOUBLETAP);
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
public void updateShortcutPreferenceData_hasTwoFingerTripleTapInSharedPref_assignToVariable() {
final PreferredShortcut tripleTapShortcut = new PreferredShortcut(
- MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TWOFINGER_DOUBLETAP);
+ MAGNIFICATION_CONTROLLER_NAME, TWOFINGER_DOUBLETAP);
putUserShortcutTypeIntoSharedPreference(mContext, tripleTapShortcut);
mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
@@ -727,7 +732,7 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
MAGNIFICATION_CONTROLLER_NAME);
- assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGER_DOUBLETAP);
+ assertThat(expectedType).isEqualTo(TWOFINGER_DOUBLETAP);
}
@Test
@@ -742,7 +747,7 @@
createEditShortcutDialog(fragment.getActivity()));
final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(UserShortcutType.EMPTY);
+ assertThat(checkboxValue).isEqualTo(DEFAULT);
}
@Test
@@ -753,7 +758,7 @@
final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
null);
final PreferredShortcut tripletapShortcut = new PreferredShortcut(
- MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TRIPLETAP);
+ MAGNIFICATION_CONTROLLER_NAME, TRIPLETAP);
fragment.mShortcutPreference = shortcutPreference;
PreferredShortcuts.saveUserShortcutType(mContext, tripletapShortcut);
@@ -762,7 +767,7 @@
createEditShortcutDialog(fragment.getActivity()));
final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(UserShortcutType.TRIPLETAP);
+ assertThat(checkboxValue).isEqualTo(TRIPLETAP);
}
@Test
@@ -774,7 +779,7 @@
final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
null);
final PreferredShortcut twoFingerTripleTapShortcut = new PreferredShortcut(
- MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TWOFINGER_DOUBLETAP);
+ MAGNIFICATION_CONTROLLER_NAME, TWOFINGER_DOUBLETAP);
fragment.mShortcutPreference = shortcutPreference;
PreferredShortcuts.saveUserShortcutType(mContext, twoFingerTripleTapShortcut);
@@ -783,13 +788,13 @@
createEditShortcutDialog(fragment.getActivity()));
final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
- assertThat(checkboxValue).isEqualTo(UserShortcutType.TWOFINGER_DOUBLETAP);
+ assertThat(checkboxValue).isEqualTo(TWOFINGER_DOUBLETAP);
}
@Test
public void restoreValueFromSavedInstanceState_assignToVariable() {
final Bundle fragmentState = createFragmentSavedInstanceState(
- UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP);
+ HARDWARE | TRIPLETAP);
ToggleScreenMagnificationPreferenceFragment fragment = mFragController.get();
// Had to use reflection to pass the savedInstanceState when launching the fragment
ReflectionHelpers.setField(fragment, "mSavedFragmentState", fragmentState);
@@ -804,14 +809,14 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
MAGNIFICATION_CONTROLLER_NAME);
assertThat(value).isEqualTo(6);
- assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP);
+ assertThat(expectedType).isEqualTo(HARDWARE | TRIPLETAP);
}
@Test
@EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
public void restoreValueFromSavedInstanceState_twoFingerTripleTap_assignToVariable() {
final Bundle fragmentState =
- createFragmentSavedInstanceState(UserShortcutType.TWOFINGER_DOUBLETAP);
+ createFragmentSavedInstanceState(TWOFINGER_DOUBLETAP);
ToggleScreenMagnificationPreferenceFragment fragment = mFragController.get();
// Had to use reflection to pass the savedInstanceState when launching the fragment
ReflectionHelpers.setField(fragment, "mSavedFragmentState", fragmentState);
@@ -825,8 +830,8 @@
final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
MAGNIFICATION_CONTROLLER_NAME);
- assertThat(value).isEqualTo(UserShortcutType.TWOFINGER_DOUBLETAP);
- assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGER_DOUBLETAP);
+ assertThat(value).isEqualTo(TWOFINGER_DOUBLETAP);
+ assertThat(expectedType).isEqualTo(TWOFINGER_DOUBLETAP);
}
@Test
@@ -1069,7 +1074,7 @@
public void getShortcutTypeSummary_shortcutSummaryIsCorrectlySet() {
final PreferredShortcut userPreferredShortcut = new PreferredShortcut(
MAGNIFICATION_CONTROLLER_NAME,
- UserShortcutType.HARDWARE | UserShortcutType.QUICK_SETTINGS);
+ HARDWARE | QUICK_SETTINGS);
putUserShortcutTypeIntoSharedPreference(mContext, userPreferredShortcut);
final ShortcutPreference shortcutPreference =
new ShortcutPreference(mContext, /* attrs= */ null);
diff --git a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
index a0ef57f..8593860 100644
--- a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
@@ -31,9 +31,11 @@
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.Intent;
+import android.hardware.biometrics.BiometricManager;
import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
@@ -102,6 +104,8 @@
private FaceStatusPreferenceController mFaceStatusPreferenceController;
@Mock
private FaceManager mFaceManager;
+ @Mock
+ private BiometricManager mBiometricManager;
@Before
public void setUp() {
@@ -114,6 +118,10 @@
mContext = spy(ApplicationProvider.getApplicationContext());
mFragment = spy(new TestCombinedBiometricProfileSettings(mContext));
doReturn(mActivity).when(mFragment).getActivity();
+ doReturn(mBiometricManager).when(mActivity).getSystemService(BiometricManager.class);
+ when(mBiometricManager.canAuthenticate(
+ BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+ .thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider",
FakeFeatureFactory.setupForTest().dashboardFeatureProvider);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java
index d24a83b..8d96f21 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java
@@ -28,16 +28,20 @@
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
+import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.DeviceConfig;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
+import android.widget.ProgressBar;
import android.widget.TextView;
import com.android.settings.R;
+import com.android.settings.SettingsActivity;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SettingsUIDeviceConfig;
+import com.android.settings.flags.Flags;
import com.android.settings.fuelgauge.BatteryMeterView;
import com.android.settings.testutils.shadow.ShadowDeviceConfig;
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
@@ -48,12 +52,13 @@
import org.junit.Before;
import org.junit.Ignore;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.HashSet;
@@ -62,6 +67,8 @@
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowEntityHeaderController.class, ShadowDeviceConfig.class})
public class AdvancedBluetoothDetailsHeaderControllerTest {
+ @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
private static final int BATTERY_LEVEL_MAIN = 30;
private static final int BATTERY_LEVEL_LEFT = 25;
private static final int BATTERY_LEVEL_RIGHT = 45;
@@ -93,7 +100,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
+ mContext = Robolectric.buildActivity(SettingsActivity.class).get();
mController = new AdvancedBluetoothDetailsHeaderController(mContext, "pref_Key");
when(mCachedDevice.getDevice()).thenReturn(mBluetoothDevice);
mController.init(mCachedDevice);
@@ -272,6 +279,7 @@
View.GONE);
assertThat(layout.findViewById(R.id.bt_battery_icon).getVisibility()).isEqualTo(View.GONE);
assertThat(layout.findViewById(R.id.header_icon).getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(layout.findViewById(R.id.battery_ring).getVisibility()).isEqualTo(View.GONE);
}
@Ignore
@@ -546,6 +554,10 @@
final TextView textView = linearLayout.findViewById(R.id.bt_battery_summary);
assertThat(textView.getText().toString()).isEqualTo(
com.android.settings.Utils.formatPercentage(batteryLevel));
+ if (Flags.enableBluetoothDeviceDetailsPolish()) {
+ final ProgressBar bar = linearLayout.findViewById(R.id.battery_ring);
+ assertThat(bar.getProgress()).isEqualTo(batteryLevel);
+ }
}
private void assertBatteryIcon(LinearLayout linearLayout, int resId) {
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
index 9b92234..2d1f4c0 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
@@ -90,6 +90,9 @@
@Mock
private CachedBluetoothDeviceManager mCachedBluetoothDeviceManager;
+ private @Mock A2dpProfile mA2dpProfile;
+ private @Mock LeAudioProfile mLeAudioProfile;
+
@Override
public void setUp() {
super.setUp();
@@ -103,11 +106,13 @@
mConnectableProfiles = new ArrayList<>();
when(mLocalManager.getProfileManager()).thenReturn(mProfileManager);
when(mLocalManager.getCachedDeviceManager()).thenReturn(mCachedBluetoothDeviceManager);
+ setUpMockProfiles();
when(mCachedBluetoothDeviceManager.getCachedDevicesCopy())
.thenReturn(ImmutableList.of(mCachedDevice));
- when(mCachedDevice.getConnectableProfiles()).thenAnswer(invocation ->
- new ArrayList<>(mConnectableProfiles)
- );
+ when(mCachedDevice.getConnectableProfiles())
+ .thenAnswer(invocation -> new ArrayList<>(mConnectableProfiles));
+ when(mCachedDevice.getProfiles())
+ .thenAnswer(invocation -> ImmutableList.of(mConnectableProfiles));
setupDevice(mDeviceConfig);
mController = new BluetoothDetailsProfilesController(mContext, mFragment, mLocalManager,
@@ -389,21 +394,36 @@
assertThat(mDevice.getMessageAccessPermission()).isEqualTo(BluetoothDevice.ACCESS_ALLOWED);
}
- private A2dpProfile addMockA2dpProfile(boolean preferred, boolean supportsHighQualityAudio,
- boolean highQualityAudioEnabled) {
- A2dpProfile profile = mock(A2dpProfile.class);
- when(mProfileManager.getProfileByName(eq(profile.toString()))).thenReturn(profile);
- when(profile.getNameResource(mDevice))
+ private void setUpMockProfiles() {
+ when(mA2dpProfile.toString()).thenReturn("A2DP");
+ when(mProfileManager.getProfileByName(eq(mA2dpProfile.toString())))
+ .thenReturn(mA2dpProfile);
+ when(mA2dpProfile.getNameResource(any()))
.thenReturn(com.android.settingslib.R.string.bluetooth_profile_a2dp);
- when(profile.getHighQualityAudioOptionLabel(mDevice)).thenReturn(
+ when(mA2dpProfile.getHighQualityAudioOptionLabel(any())).thenReturn(
mContext.getString(com.android.settingslib.R
.string.bluetooth_profile_a2dp_high_quality_unknown_codec));
- when(profile.supportsHighQualityAudio(mDevice)).thenReturn(supportsHighQualityAudio);
- when(profile.isHighQualityAudioEnabled(mDevice)).thenReturn(highQualityAudioEnabled);
- when(profile.isEnabled(mDevice)).thenReturn(preferred);
- when(profile.isProfileReady()).thenReturn(true);
- mConnectableProfiles.add(profile);
- return profile;
+ when(mA2dpProfile.isProfileReady()).thenReturn(true);
+ when(mProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile);
+
+ when(mLeAudioProfile.toString()).thenReturn("LE_AUDIO");
+ when(mLeAudioProfile.getNameResource(any()))
+ .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
+ when(mLeAudioProfile.isProfileReady()).thenReturn(true);
+ when(mProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile);
+ }
+
+ private void addA2dpProfileToDevice(boolean preferred, boolean supportsHighQualityAudio,
+ boolean highQualityAudioEnabled) {
+ when(mA2dpProfile.supportsHighQualityAudio(any())).thenReturn(supportsHighQualityAudio);
+ when(mA2dpProfile.isHighQualityAudioEnabled(any())).thenReturn(highQualityAudioEnabled);
+ when(mA2dpProfile.isEnabled(any())).thenReturn(preferred);
+ mConnectableProfiles.add(mA2dpProfile);
+ }
+
+ private void addLeAudioProfileToDevice(boolean enabled) {
+ when(mLeAudioProfile.isEnabled(any())).thenReturn(enabled);
+ mConnectableProfiles.add(mLeAudioProfile);
}
private SwitchPreferenceCompat getHighQualityAudioPref() {
@@ -414,7 +434,7 @@
@Test
public void highQualityAudio_prefIsPresentWhenSupported() {
setupDevice(makeDefaultDeviceConfig());
- addMockA2dpProfile(true, true, true);
+ addA2dpProfileToDevice(true, true, true);
showScreen(mController);
SwitchPreferenceCompat pref = getHighQualityAudioPref();
assertThat(pref.getKey()).isEqualTo(
@@ -431,7 +451,7 @@
@Test
public void highQualityAudio_prefIsAbsentWhenNotSupported() {
setupDevice(makeDefaultDeviceConfig());
- addMockA2dpProfile(true, false, false);
+ addA2dpProfileToDevice(true, false, false);
showScreen(mController);
assertThat(mProfiles.getPreferenceCount()).isEqualTo(2);
SwitchPreferenceCompat pref = (SwitchPreferenceCompat) mProfiles.getPreference(0);
@@ -444,7 +464,7 @@
@Test
public void highQualityAudio_busyDeviceDisablesSwitch() {
setupDevice(makeDefaultDeviceConfig());
- addMockA2dpProfile(true, true, true);
+ addA2dpProfileToDevice(true, true, true);
when(mCachedDevice.isBusy()).thenReturn(true);
showScreen(mController);
SwitchPreferenceCompat pref = getHighQualityAudioPref();
@@ -454,17 +474,17 @@
@Test
public void highQualityAudio_mediaAudioDisabledAndReEnabled() {
setupDevice(makeDefaultDeviceConfig());
- A2dpProfile audioProfile = addMockA2dpProfile(true, true, true);
+ addA2dpProfileToDevice(true, true, true);
showScreen(mController);
assertThat(mProfiles.getPreferenceCount()).isEqualTo(3);
// Disabling media audio should cause the high quality audio switch to disappear, but not
// the regular audio one.
SwitchPreferenceCompat audioPref =
- (SwitchPreferenceCompat) mScreen.findPreference(audioProfile.toString());
+ (SwitchPreferenceCompat) mScreen.findPreference(mA2dpProfile.toString());
audioPref.performClick();
- verify(audioProfile).setEnabled(mDevice, false);
- when(audioProfile.isEnabled(mDevice)).thenReturn(false);
+ verify(mA2dpProfile).setEnabled(mDevice, false);
+ when(mA2dpProfile.isEnabled(mDevice)).thenReturn(false);
mController.onDeviceAttributesChanged();
assertThat(audioPref.isVisible()).isTrue();
SwitchPreferenceCompat highQualityAudioPref = getHighQualityAudioPref();
@@ -472,8 +492,8 @@
// And re-enabling media audio should make high quality switch to reappear.
audioPref.performClick();
- verify(audioProfile).setEnabled(mDevice, true);
- when(audioProfile.isEnabled(mDevice)).thenReturn(true);
+ verify(mA2dpProfile).setEnabled(mDevice, true);
+ when(mA2dpProfile.isEnabled(mDevice)).thenReturn(true);
mController.onDeviceAttributesChanged();
highQualityAudioPref = getHighQualityAudioPref();
assertThat(highQualityAudioPref.isVisible()).isTrue();
@@ -482,9 +502,9 @@
@Test
public void highQualityAudio_mediaAudioStartsDisabled() {
setupDevice(makeDefaultDeviceConfig());
- A2dpProfile audioProfile = addMockA2dpProfile(false, true, true);
+ addA2dpProfileToDevice(false, true, true);
showScreen(mController);
- SwitchPreferenceCompat audioPref = mScreen.findPreference(audioProfile.toString());
+ SwitchPreferenceCompat audioPref = mScreen.findPreference(mA2dpProfile.toString());
SwitchPreferenceCompat highQualityAudioPref = getHighQualityAudioPref();
assertThat(audioPref).isNotNull();
assertThat(audioPref.isChecked()).isFalse();
@@ -522,15 +542,9 @@
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_BLUETOOTH_PROFILE_TOGGLE_VISIBILITY_CHECKER);
setupDevice(makeDefaultDeviceConfig());
- LeAudioProfile leAudioProfile = mock(LeAudioProfile.class);
- when(leAudioProfile.getNameResource(mDevice))
- .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
- when(leAudioProfile.isProfileReady()).thenReturn(true);
- when(leAudioProfile.toString()).thenReturn("LE_AUDIO");
- when(mProfileManager.getLeAudioProfile()).thenReturn(leAudioProfile);
+ addA2dpProfileToDevice(true, true, true);
when(mFeatureProvider.getInvisibleProfilePreferenceKeys(any(), any()))
- .thenReturn(ImmutableSet.of("LE_AUDIO"));
- mConnectableProfiles.add(leAudioProfile);
+ .thenReturn(ImmutableSet.of("A2DP"));
showScreen(mController);
@@ -543,15 +557,9 @@
mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_BLUETOOTH_PROFILE_TOGGLE_VISIBILITY_CHECKER);
setupDevice(makeDefaultDeviceConfig());
- LeAudioProfile leAudioProfile = mock(LeAudioProfile.class);
- when(leAudioProfile.getNameResource(mDevice))
- .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
- when(leAudioProfile.isProfileReady()).thenReturn(true);
- when(leAudioProfile.toString()).thenReturn("LE_AUDIO");
- when(mProfileManager.getLeAudioProfile()).thenReturn(leAudioProfile);
+ addA2dpProfileToDevice(true, true, true);
when(mFeatureProvider.getInvisibleProfilePreferenceKeys(any(), any()))
- .thenReturn(ImmutableSet.of("A2DP"));
- mConnectableProfiles.add(leAudioProfile);
+ .thenReturn(ImmutableSet.of("LE_AUDIO"));
showScreen(mController);
@@ -563,19 +571,8 @@
public void classicAudioDeviceWithLeAudio_showLeAudioToggle() {
mSetFlagsRule.enableFlags(Flags.FLAG_HIDE_LE_AUDIO_TOGGLE_FOR_LE_AUDIO_ONLY_DEVICE);
setupDevice(makeDefaultDeviceConfig());
-
- LeAudioProfile leAudioProfile = mock(LeAudioProfile.class);
- when(leAudioProfile.getNameResource(mDevice))
- .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
- when(leAudioProfile.isProfileReady()).thenReturn(true);
- when(leAudioProfile.toString()).thenReturn("LE_AUDIO");
- when(mProfileManager.getLeAudioProfile()).thenReturn(leAudioProfile);
- mConnectableProfiles.add(leAudioProfile);
- when(mCachedDevice.getProfiles())
- .thenAnswer(
- invocation ->
- ImmutableList.of(
- leAudioProfile, addMockA2dpProfile(false, false, false)));
+ addLeAudioProfileToDevice(false);
+ addA2dpProfileToDevice(false, false, false);
showScreen(mController);
@@ -587,16 +584,7 @@
public void leAudioOnlyDevice_hideLeAudioToggle() {
mSetFlagsRule.enableFlags(Flags.FLAG_HIDE_LE_AUDIO_TOGGLE_FOR_LE_AUDIO_ONLY_DEVICE);
setupDevice(makeDefaultDeviceConfig());
-
- LeAudioProfile leAudioProfile = mock(LeAudioProfile.class);
- when(leAudioProfile.getNameResource(mDevice))
- .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
- when(leAudioProfile.isProfileReady()).thenReturn(true);
- when(leAudioProfile.toString()).thenReturn("LE_AUDIO");
- when(mProfileManager.getLeAudioProfile()).thenReturn(leAudioProfile);
- mConnectableProfiles.add(leAudioProfile);
- when(mCachedDevice.getProfiles())
- .thenAnswer(invocation -> ImmutableList.of(leAudioProfile));
+ addLeAudioProfileToDevice(false);
showScreen(mController);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusUsiHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusUsiHeaderControllerTest.java
index 3aad02e..4509c7c 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusUsiHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusUsiHeaderControllerTest.java
@@ -33,9 +33,9 @@
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
+import com.android.settings.SettingsActivity;
import com.android.settingslib.widget.LayoutPreference;
import org.junit.Before;
@@ -43,6 +43,7 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
@@ -72,7 +73,7 @@
when(mBatteryState.getCapacity()).thenReturn(1f);
when(mBatteryState.isPresent()).thenReturn(true);
- mContext = spy(ApplicationProvider.getApplicationContext());
+ mContext = spy(Robolectric.buildActivity(SettingsActivity.class).get());
when(mContext.getSystemService(InputManager.class)).thenReturn(mInputManager);
mController = new StylusUsiHeaderController(mContext, mInputDevice);
diff --git a/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
index c74512a..0fd4d85 100644
--- a/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
@@ -18,9 +18,9 @@
import static android.provider.Settings.Global.DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES;
-import static com.android.settings.development.DesktopModePreferenceController.SETTING_VALUE_OFF;
-import static com.android.settings.development.DesktopModePreferenceController.SETTING_VALUE_ON;
-import static com.android.settings.development.DesktopModePreferenceController.SETTING_VALUE_UNSET;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_ON;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_OFF;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_UNSET;
import static com.google.common.truth.Truth.assertThat;
@@ -132,7 +132,7 @@
final int mode = Settings.Global.getInt(mContext.getContentResolver(),
DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, -1 /* default */);
- assertThat(mode).isEqualTo(SETTING_VALUE_ON);
+ assertThat(mode).isEqualTo(OVERRIDE_ON.getSetting());
verify(mTransaction).add(any(RebootConfirmationDialogFragment.class), any());
}
@@ -142,14 +142,14 @@
int mode = Settings.Global.getInt(mContext.getContentResolver(),
DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, -1 /* default */);
- assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
+ assertThat(mode).isEqualTo(OVERRIDE_OFF.getSetting());
verify(mTransaction).add(any(RebootConfirmationDialogFragment.class), any());
}
@Test
public void updateState_overrideOn_checksPreference() {
Settings.Global.putInt(mContext.getContentResolver(),
- DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, SETTING_VALUE_ON);
+ DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_ON.getSetting());
mController.updateState(mPreference);
@@ -159,7 +159,7 @@
@Test
public void updateState_overrideOff_unchecksPreference() {
Settings.Global.putInt(mContext.getContentResolver(),
- DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, SETTING_VALUE_OFF);
+ DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_OFF.getSetting());
mController.updateState(mPreference);
@@ -170,7 +170,7 @@
@EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
public void updateState_overrideUnset_defaultDevOptionStatusOn_checksPreference() {
Settings.Global.putInt(mContext.getContentResolver(),
- DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, SETTING_VALUE_UNSET);
+ DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_UNSET.getSetting());
mController.updateState(mPreference);
@@ -181,7 +181,7 @@
@DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
public void updateState_overrideUnset_defaultDevOptionStatusOff_unchecksPreference() {
Settings.Global.putInt(mContext.getContentResolver(),
- DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, SETTING_VALUE_UNSET);
+ DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_UNSET.getSetting());
mController.updateState(mPreference);
@@ -253,6 +253,6 @@
final int mode = Settings.Global.getInt(mContext.getContentResolver(),
DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, -2 /* default */);
- assertThat(mode).isEqualTo(DesktopModePreferenceController.SETTING_VALUE_UNSET);
+ assertThat(mode).isEqualTo(OVERRIDE_UNSET.getSetting());
}
}
diff --git a/tests/robotests/src/com/android/settings/development/OWNERS b/tests/robotests/src/com/android/settings/development/OWNERS
new file mode 100644
index 0000000..92a75e2
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/OWNERS
@@ -0,0 +1,2 @@
+# DesktopModePreferenceControllerTest
+per-file DesktopModePreferenceControllerTest.java=file:platform/frameworks/base:/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
index 7c1650d2..952af67 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
@@ -31,10 +31,10 @@
import androidx.test.core.app.ApplicationProvider;
+import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -76,17 +76,17 @@
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
}
- @Ignore("b/315267179")
@Test
public void getSummary_available_returnExpectedDate() {
when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(eq(mContext),
anyLong())).thenReturn(true);
mShadowBatteryManager.setLongProperty(BatteryManager.BATTERY_PROPERTY_FIRST_USAGE_DATE,
1669680000L);
+ final CharSequence expectedDate = BatteryUtils.getBatteryInfoFormattedDate(1669680000000L);
final CharSequence result = mController.getSummary();
- assertThat(result.toString()).isEqualTo("November 29, 2022");
+ assertThat(result).isEqualTo(expectedDate);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
index e50aa1c..6e3b1aa 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
@@ -31,10 +31,10 @@
import androidx.test.core.app.ApplicationProvider;
+import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -77,17 +77,17 @@
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
}
- @Ignore("b/315267179")
@Test
public void getSummary_available_returnExpectedDate() {
when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(eq(mContext),
anyLong())).thenReturn(true);
mShadowBatteryManager.setLongProperty(BatteryManager.BATTERY_PROPERTY_MANUFACTURING_DATE,
1669680000L);
+ final CharSequence expectedDate = BatteryUtils.getBatteryInfoFormattedDate(1669680000000L);
final CharSequence result = mController.getSummary();
- assertThat(result.toString()).isEqualTo("November 29, 2022");
+ assertThat(result).isEqualTo(expectedDate);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index 80739e9..1bc00a1 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -441,4 +441,9 @@
TimeUnit.SECONDS.sleep(1);
verifyNoInteractions(mMetricsFeatureProvider);
}
+
+ @Test
+ public void shouldSkipForInitialSUW_returnTrue() {
+ assertThat(mFragment.shouldSkipForInitialSUW()).isTrue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtilsTest.java
index bf2b191..9b459c5 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtilsTest.java
@@ -18,15 +18,19 @@
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.PowerUsageFeatureProvider;
import com.android.settings.fuelgauge.batteryusage.BatteryReattribute;
import com.android.settings.fuelgauge.batteryusage.db.BatteryReattributeDao;
import com.android.settings.fuelgauge.batteryusage.db.BatteryReattributeEntity;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
import com.android.settings.testutils.BatteryTestUtils;
+import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.After;
import org.junit.Before;
@@ -48,6 +52,7 @@
private Context mContext;
private BatteryStateDatabase mDatabase;
private BatteryReattributeDao mBatteryReattributeDao;
+ private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
@Before
public void setUp() {
@@ -56,6 +61,8 @@
mTestPrintWriter = new PrintWriter(mTestStringWriter);
mDatabase = BatteryTestUtils.setUpBatteryStateDatabase(mContext);
mBatteryReattributeDao = mDatabase.batteryReattributeDao();
+ mPowerUsageFeatureProvider = FakeFeatureFactory.setupForTest().powerUsageFeatureProvider;
+ when(mPowerUsageFeatureProvider.isBatteryUsageReattributeEnabled()).thenReturn(true);
}
@After
@@ -99,4 +106,17 @@
assertThat(result).contains(batteryReattribute1.toString());
assertThat(result).contains(batteryReattribute2.toString());
}
+
+ @Test
+ public void dumpBatteryReattributeDatabaseHist_featureDisable_notPrintData() {
+ mBatteryReattributeDao.insert(new BatteryReattributeEntity(
+ BatteryReattribute.getDefaultInstance()));
+ when(mPowerUsageFeatureProvider.isBatteryUsageReattributeEnabled()).thenReturn(false);
+
+ LogUtils.dumpBatteryReattributeDatabaseHist(mBatteryReattributeDao, mTestPrintWriter);
+
+ final String result = mTestStringWriter.toString();
+ assertThat(result).contains("BatteryReattribute is disabled!");
+ assertThat(result.contains("BatteryReattribute DatabaseHistory:")).isFalse();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceControllerTest.java
new file mode 100644
index 0000000..9b4d5ef
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceControllerTest.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.inputmethod;
+
+import static android.view.flags.Flags.enableVectorCursorA11ySettings;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.inputmethod.PointerStrokeStylePreferenceController.KEY_POINTER_STROKE_STYLE;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assume.assumeTrue;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link PointerStrokeStylePreferenceController} */
+@RunWith(RobolectricTestRunner.class)
+public class PointerStrokeStylePreferenceControllerTest {
+ @Rule
+ public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+ @Mock
+ PreferenceScreen mPreferenceScreen;
+
+ private Context mContext;
+ private PointerStrokeStylePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ mContext = ApplicationProvider.getApplicationContext();
+ mController = new PointerStrokeStylePreferenceController(mContext);
+ }
+
+ @Test
+ public void displayPreference_initializeDataStore() {
+ Preference strokePreference = new Preference(mContext);
+ strokePreference.setKey(KEY_POINTER_STROKE_STYLE);
+ when(mPreferenceScreen.findPreference(eq(KEY_POINTER_STROKE_STYLE))).thenReturn(
+ strokePreference);
+
+ mController.displayPreference(mPreferenceScreen);
+
+ assertNotNull(strokePreference.getPreferenceDataStore());
+ }
+
+ @Test
+ public void getAvailabilityStatus_flagEnabled() {
+ assumeTrue(enableVectorCursorA11ySettings());
+
+ assertEquals(mController.getAvailabilityStatus(), AVAILABLE);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceTest.java b/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceTest.java
new file mode 100644
index 0000000..33b8592
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceTest.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.inputmethod;
+
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_BLACK;
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_WHITE;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.view.View;
+import android.widget.RadioButton;
+
+import androidx.preference.PreferenceDataStore;
+import androidx.preference.PreferenceViewHolder;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link PointerStrokeStylePreference} */
+@RunWith(RobolectricTestRunner.class)
+public class PointerStrokeStylePreferenceTest {
+ @Rule
+ public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+ @Mock
+ PreferenceDataStore mPreferenceDataStore;
+
+ private Context mContext;
+ private PreferenceViewHolder mViewHolder;
+ private PointerStrokeStylePreference mPreference;
+
+
+ @Before
+ public void setUp() {
+ mContext = ApplicationProvider.getApplicationContext();
+ mPreference = new PointerStrokeStylePreference(mContext, null);
+ }
+
+ @Test
+ public void onBindViewHolder_getCurrentStrokeStyleFromDataStore() {
+ final View view = spy(View.inflate(mContext, mPreference.getLayoutResource(), null));
+ mViewHolder = PreferenceViewHolder.createInstanceForTests(view);
+ mPreference.setPreferenceDataStore(mPreferenceDataStore);
+
+ mPreference.onBindViewHolder(mViewHolder);
+
+ verify(mPreferenceDataStore).getInt(Settings.System.POINTER_STROKE_STYLE,
+ POINTER_ICON_VECTOR_STYLE_STROKE_WHITE);
+ }
+
+ @Test
+ public void setChecked_radioButtonUpdatesDataStore() {
+ final View view = spy(View.inflate(mContext, mPreference.getLayoutResource(), null));
+ mViewHolder = PreferenceViewHolder.createInstanceForTests(view);
+ mPreference.setPreferenceDataStore(mPreferenceDataStore);
+ RadioButton radioButton = (RadioButton) view.findViewById(R.id.stroke_style_black);
+ mPreference.onBindViewHolder(mViewHolder);
+
+ radioButton.setChecked(true);
+
+ verify(mPreferenceDataStore).getInt(Settings.System.POINTER_STROKE_STYLE,
+ POINTER_ICON_VECTOR_STYLE_STROKE_WHITE);
+ verify(mPreferenceDataStore).putInt(Settings.System.POINTER_STROKE_STYLE,
+ POINTER_ICON_VECTOR_STYLE_STROKE_BLACK);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java
index 1c72e87..47291a0 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java
@@ -34,6 +34,7 @@
import android.os.Bundle;
import android.service.notification.ConditionProviderService;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import org.junit.Before;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
index ff25322..61d3192 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
@@ -33,6 +33,7 @@
import androidx.preference.TwoStatePreference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ManualDurationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ManualDurationPreferenceControllerTest.java
index 0a600c0..29fdfdd 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ManualDurationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ManualDurationPreferenceControllerTest.java
@@ -30,6 +30,7 @@
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/TestModeBuilder.java b/tests/robotests/src/com/android/settings/notification/modes/TestModeBuilder.java
deleted file mode 100644
index fdb5701..0000000
--- a/tests/robotests/src/com/android/settings/notification/modes/TestModeBuilder.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.notification.modes;
-
-import android.app.AutomaticZenRule;
-import android.app.NotificationManager;
-import android.content.ComponentName;
-import android.net.Uri;
-import android.service.notification.Condition;
-import android.service.notification.ZenDeviceEffects;
-import android.service.notification.ZenModeConfig;
-import android.service.notification.ZenPolicy;
-
-import androidx.annotation.DrawableRes;
-import androidx.annotation.Nullable;
-
-import com.android.settingslib.notification.modes.ZenMode;
-
-import java.util.Random;
-
-class TestModeBuilder {
-
- private String mId;
- private AutomaticZenRule mRule;
- private ZenModeConfig.ZenRule mConfigZenRule;
-
- public static final ZenMode EXAMPLE = new TestModeBuilder().build();
-
- TestModeBuilder() {
- // Reasonable defaults
- int id = new Random().nextInt(1000);
- mId = "rule_" + id;
- mRule = new AutomaticZenRule.Builder("Test Rule #" + id, Uri.parse("rule://" + id))
- .setPackage("some_package")
- .setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY)
- .setZenPolicy(new ZenPolicy.Builder().disallowAllSounds().build())
- .build();
- mConfigZenRule = new ZenModeConfig.ZenRule();
- mConfigZenRule.enabled = true;
- mConfigZenRule.pkg = "some_package";
- }
-
- TestModeBuilder setId(String id) {
- mId = id;
- return this;
- }
-
- TestModeBuilder setAzr(AutomaticZenRule rule) {
- mRule = rule;
- mConfigZenRule.pkg = rule.getPackageName();
- mConfigZenRule.conditionId = rule.getConditionId();
- mConfigZenRule.enabled = rule.isEnabled();
- return this;
- }
-
- TestModeBuilder setConfigZenRule(ZenModeConfig.ZenRule configZenRule) {
- mConfigZenRule = configZenRule;
- return this;
- }
-
- TestModeBuilder setName(String name) {
- mRule.setName(name);
- mConfigZenRule.name = name;
- return this;
- }
-
- TestModeBuilder setPackage(String pkg) {
- mRule.setPackageName(pkg);
- mConfigZenRule.pkg = pkg;
- return this;
- }
-
- TestModeBuilder setOwner(ComponentName owner) {
- mRule.setOwner(owner);
- mConfigZenRule.component = owner;
- return this;
- }
-
- TestModeBuilder setConfigurationActivity(ComponentName configActivity) {
- mRule.setConfigurationActivity(configActivity);
- mConfigZenRule.configurationActivity = configActivity;
- return this;
- }
-
- TestModeBuilder setConditionId(Uri conditionId) {
- mRule.setConditionId(conditionId);
- mConfigZenRule.conditionId = conditionId;
- return this;
- }
-
- TestModeBuilder setType(@AutomaticZenRule.Type int type) {
- mRule.setType(type);
- mConfigZenRule.type = type;
- return this;
- }
-
- TestModeBuilder setInterruptionFilter(
- @NotificationManager.InterruptionFilter int interruptionFilter) {
- mRule.setInterruptionFilter(interruptionFilter);
- mConfigZenRule.zenMode = NotificationManager.zenModeFromInterruptionFilter(
- interruptionFilter, NotificationManager.INTERRUPTION_FILTER_PRIORITY);
- return this;
- }
-
- TestModeBuilder setZenPolicy(@Nullable ZenPolicy policy) {
- mRule.setZenPolicy(policy);
- mConfigZenRule.zenPolicy = policy;
- return this;
- }
-
- TestModeBuilder setDeviceEffects(@Nullable ZenDeviceEffects deviceEffects) {
- mRule.setDeviceEffects(deviceEffects);
- mConfigZenRule.zenDeviceEffects = deviceEffects;
- return this;
- }
-
- TestModeBuilder setEnabled(boolean enabled) {
- mRule.setEnabled(enabled);
- mConfigZenRule.enabled = enabled;
- return this;
- }
-
- TestModeBuilder setManualInvocationAllowed(boolean allowed) {
- mRule.setManualInvocationAllowed(allowed);
- mConfigZenRule.allowManualInvocation = allowed;
- return this;
- }
-
- TestModeBuilder setTriggerDescription(@Nullable String triggerDescription) {
- mRule.setTriggerDescription(triggerDescription);
- mConfigZenRule.triggerDescription = triggerDescription;
- return this;
- }
-
- TestModeBuilder setIconResId(@DrawableRes int iconResId) {
- mRule.setIconResId(iconResId);
- return this;
- }
-
- TestModeBuilder setActive(boolean active) {
- if (active) {
- mConfigZenRule.enabled = true;
- mConfigZenRule.condition = new Condition(mRule.getConditionId(), "...",
- Condition.STATE_TRUE);
- } else {
- mConfigZenRule.condition = null;
- }
- return this;
- }
-
- ZenMode build() {
- return new ZenMode(mId, mRule, mConfigZenRule);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
index 83f8de0..1faba30 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
@@ -38,11 +38,11 @@
import android.service.notification.ZenPolicy;
import androidx.fragment.app.Fragment;
-import androidx.preference.Preference;
import com.android.settings.SettingsActivity;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import com.android.settingslib.widget.SelectorWithWidgetPreference;
@@ -51,7 +51,6 @@
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;
@@ -118,15 +117,12 @@
@Test
public void testUpdateSetsIntent() {
// Creates the preference
- SelectorWithWidgetPreference preference = mock(SelectorWithWidgetPreference.class);
+ SelectorWithWidgetPreference preference = new SelectorWithWidgetPreference(mContext);
// Create a zen mode that allows priority channels to breakthrough.
ZenMode zenMode = createPriorityChannelsZenMode();
- // Capture the intent
- ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- mController.updateState((Preference) preference, zenMode);
- verify(preference).setIntent(captor.capture());
- Intent launcherIntent = captor.getValue();
+ mController.updateState(preference, zenMode);
+ Intent launcherIntent = preference.getIntent();
assertThat(launcherIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
.isEqualTo("com.android.settings.notification.modes.ZenModeAppsFragment");
@@ -154,13 +150,12 @@
@Test
public void testUpdateTriggersRebuild() {
// Creates the preference
- SelectorWithWidgetPreference preference = mock(SelectorWithWidgetPreference.class);
+ SelectorWithWidgetPreference preference = new SelectorWithWidgetPreference(mContext);
// Create a zen mode that allows priority channels to breakthrough.
ZenMode zenMode = createPriorityChannelsZenMode();
// Create some applications.
- ArrayList<ApplicationsState.AppEntry> appEntries =
- new ArrayList<ApplicationsState.AppEntry>();
+ ArrayList<ApplicationsState.AppEntry> appEntries = new ArrayList<>();
appEntries.add(createAppEntry("test", "pkgLabel"));
when(mHelperBackend.getPackagesBypassingDnd(
@@ -168,18 +163,19 @@
.thenReturn(List.of("test"));
// Updates the preference with the zen mode. We expect that this causes the app session
- // to trigger a rebuild.
- mController.updateZenMode((Preference) preference, zenMode);
+ // to trigger a rebuild (and display a temporary text in the meantime).
+ mController.updateZenMode(preference, zenMode);
verify(mSession).rebuild(any(), any(), eq(false));
+ assertThat(String.valueOf(preference.getSummary())).isEqualTo("Calculating…");
// Manually triggers the callback that will happen on rebuild.
mController.mAppSessionCallbacks.onRebuildComplete(appEntries);
- verify(preference).setSummary("pkgLabel can interrupt");
+ assertThat(String.valueOf(preference.getSummary())).isEqualTo("pkgLabel can interrupt");
}
@Test
public void testOnPackageListChangedTriggersRebuild() {
- SelectorWithWidgetPreference preference = mock(SelectorWithWidgetPreference.class);
+ SelectorWithWidgetPreference preference = new SelectorWithWidgetPreference(mContext);
// Create a zen mode that allows priority channels to breakthrough.
ZenMode zenMode = createPriorityChannelsZenMode();
mController.updateState(preference, zenMode);
@@ -191,7 +187,7 @@
@Test
public void testOnLoadEntriesCompletedTriggersRebuild() {
- SelectorWithWidgetPreference preference = mock(SelectorWithWidgetPreference.class);
+ SelectorWithWidgetPreference preference = new SelectorWithWidgetPreference(mContext);
// Create a zen mode that allows priority channels to breakthrough.
ZenMode zenMode = createPriorityChannelsZenMode();
mController.updateState(preference, zenMode);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java
index c96dbb6..1140238 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java
@@ -37,6 +37,7 @@
import androidx.preference.PreferenceScreen;
import androidx.preference.TwoStatePreference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import com.android.settingslib.widget.SelectorWithWidgetPreference;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
index 5869c6b..368b923 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
@@ -35,6 +35,7 @@
import androidx.fragment.app.Fragment;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import com.android.settingslib.widget.LayoutPreference;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java
index e50d294..862cf77 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java
@@ -27,6 +27,8 @@
import androidx.preference.Preference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java
index a735cd9..f2c6006 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java
@@ -29,6 +29,7 @@
import androidx.preference.TwoStatePreference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
index 3ccfb9f..6c3d74f 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
@@ -27,6 +27,7 @@
import androidx.preference.Preference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenModesBackend;
import org.junit.Before;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java
new file mode 100644
index 0000000..b15d4d6
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+
+import android.content.Context;
+import android.widget.Button;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.widget.LayoutPreference;
+
+import org.junit.Before;
+import org.junit.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 ZenModeEditDonePreferenceControllerTest {
+
+ private ZenModeEditDonePreferenceController mController;
+ private LayoutPreference mPreference;
+ private Button mButton;
+ @Mock private Runnable mConfirmSave;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+
+ Context context = RuntimeEnvironment.application;
+ PreferenceManager preferenceManager = new PreferenceManager(context);
+ PreferenceScreen preferenceScreen = preferenceManager.inflateFromResource(context,
+ R.xml.modes_edit_name_icon, null);
+ mPreference = preferenceScreen.findPreference("done");
+
+ mController = new ZenModeEditDonePreferenceController(context, "done", mConfirmSave);
+ mController.displayPreference(preferenceScreen);
+
+ mButton = mPreference.findViewById(R.id.done);
+ assertThat(mButton).isNotNull();
+ }
+
+ @Test
+ public void updateState_nameNonEmpty_buttonEnabled() {
+ ZenMode mode = new TestModeBuilder().setName("Such a nice name").build();
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mButton.isEnabled()).isTrue();
+ verifyNoMoreInteractions(mConfirmSave);
+ }
+
+ @Test
+ public void updateState_nameEmpty_buttonDisabled() {
+ ZenMode aModeHasNoName = new TestModeBuilder().setName("").build();
+
+ mController.updateState(mPreference, aModeHasNoName);
+
+ assertThat(mButton.isEnabled()).isFalse();
+ verifyNoMoreInteractions(mConfirmSave);
+ }
+
+ @Test
+ public void onButtonClick_callsConfirmSave() {
+ mButton.performClick();
+
+ verify(mConfirmSave).run();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java
new file mode 100644
index 0000000..2441803
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle;
+
+import com.android.internal.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.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 ZenModeEditNameIconFragmentTest {
+
+ private static final ZenMode MODE = new TestModeBuilder().setId("id").setName("Mode").build();
+
+ private Activity mActivity;
+ private ZenModeEditNameIconFragment mFragment;
+ private FragmentScenario<ZenModeEditNameIconFragment> mScenario;
+
+ @Mock
+ private ZenModesBackend mBackend;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ // Note: Each test should call startFragment() to set mScenario, mFragment and mActivity.
+ }
+
+ @After
+ public void tearDown() {
+ if (mScenario != null) {
+ mScenario.close();
+ }
+ }
+
+ @Test
+ public void onCreate_loadsMode() {
+ when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+
+ startFragment(MODE.getId());
+
+ assertThat(mFragment.getZenMode()).isEqualTo(MODE);
+ assertThat(mActivity.isFinishing()).isFalse();
+ }
+
+ @Test
+ public void onCreate_noModeId_exits() {
+ when(mBackend.getMode(any())).thenReturn(MODE);
+
+ startFragment(null);
+
+ assertThat(mActivity.isFinishing()).isTrue();
+ verifyNoMoreInteractions(mBackend);
+ }
+ @Test
+ public void onCreate_missingMode_exits() {
+ when(mBackend.getMode(any())).thenReturn(null);
+
+ startFragment(MODE.getId());
+
+ assertThat(mActivity.isFinishing()).isTrue();
+ verify(mBackend).getMode(MODE.getId());
+ }
+
+ @Test
+ public void saveMode_appliesChangesAndFinishes() {
+ when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+ startFragment(MODE.getId());
+
+ mFragment.setModeName("A new name");
+ mFragment.setModeIcon(R.drawable.ic_zen_mode_type_theater);
+ mFragment.setModeName("A newer name");
+
+ mFragment.saveMode();
+
+ ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+ verify(mBackend).updateMode(captor.capture());
+ ZenMode savedMode = captor.getValue();
+ assertThat(savedMode.getName()).isEqualTo("A newer name");
+ assertThat(savedMode.getRule().getIconResId()).isEqualTo(
+ R.drawable.ic_zen_mode_type_theater);
+
+ assertThat(mActivity.isFinishing()).isTrue();
+ }
+
+ @Test
+ public void saveMode_appliesOnyNameAndIconChanges() {
+ when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+ startFragment(MODE.getId());
+ mFragment.setModeName("A new name");
+ mFragment.setModeIcon(R.drawable.ic_zen_mode_type_theater);
+ // Before the user saves, something else about the mode was modified by someone else.
+ ZenMode newerMode = new TestModeBuilder(MODE).setTriggerDescription("Whenever").build();
+ when(mBackend.getMode(MODE.getId())).thenReturn(newerMode);
+
+ mFragment.saveMode();
+
+ // Verify that saving only wrote the mode name, and didn't accidentally stomp over
+ // unrelated fields of the mode.
+ ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+ verify(mBackend).updateMode(captor.capture());
+ ZenMode savedMode = captor.getValue();
+ assertThat(savedMode.getName()).isEqualTo("A new name");
+ assertThat(savedMode.getTriggerDescription()).isEqualTo("Whenever");
+ }
+
+ @Test
+ public void saveMode_forModeThatDisappeared_ignoresSave() {
+ when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+ startFragment(MODE.getId());
+ mFragment.setModeName("A new name");
+ mFragment.setModeIcon(R.drawable.ic_zen_mode_type_theater);
+ // Before the user saves, the mode was removed by someone else.
+ when(mBackend.getMode(MODE.getId())).thenReturn(null);
+
+ mFragment.saveMode();
+
+ verify(mBackend, never()).updateMode(any());
+ assertThat(mActivity.isFinishing()).isTrue();
+ }
+
+ @Test
+ public void setModeFields_withoutSaveMode_doesNotSaveChanges() {
+ when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+ startFragment(MODE.getId());
+
+ mFragment.setModeName("Not a good idea");
+ mFragment.setModeIcon(R.drawable.emergency_icon);
+ mActivity.finish();
+
+ verify(mBackend, never()).updateMode(any());
+ }
+
+ @Test
+ public void onCreate_whenRecreating_preservesEdits() {
+ when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+ startFragment(MODE.getId());
+
+ mFragment.setModeName("A better name");
+ mScenario.recreate().onFragment(newFragment -> {
+ assertThat(newFragment).isNotSameInstanceAs(mFragment);
+ newFragment.setBackend(mBackend);
+ mActivity = newFragment.getActivity();
+ mFragment = newFragment;
+ });
+ mFragment.saveMode();
+
+ ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+ verify(mBackend).updateMode(captor.capture());
+ ZenMode savedMode = captor.getValue();
+ assertThat(savedMode.getName()).isEqualTo("A better name");
+ assertThat(mActivity.isFinishing()).isTrue();
+ }
+
+ private void startFragment(@Nullable String modeId) {
+ Bundle fragmentArgs = null;
+ if (modeId != null) {
+ fragmentArgs = new Bundle();
+ fragmentArgs.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, modeId);
+ }
+
+ mScenario = FragmentScenario.launch(ZenModeEditNameIconFragment.class, fragmentArgs, 0,
+ Lifecycle.State.INITIALIZED);
+
+ mScenario.onFragment(fragment -> {
+ fragment.setBackend(mBackend); // Before onCreate().
+ mFragment = fragment;
+ });
+
+ mScenario.moveToState(Lifecycle.State.RESUMED).onFragment(fragment -> {
+ mActivity = fragment.requireActivity();
+ });
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java
new file mode 100644
index 0000000..b54727c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+
+import android.content.Context;
+import android.widget.EditText;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.widget.LayoutPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.function.Consumer;
+
+@RunWith(RobolectricTestRunner.class)
+public class ZenModeEditNamePreferenceControllerTest {
+
+ private ZenModeEditNamePreferenceController mController;
+ private LayoutPreference mPreference;
+ private EditText mEditText;
+ @Mock private Consumer<String> mNameSetter;
+
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+
+ Context context = RuntimeEnvironment.application;
+ PreferenceManager preferenceManager = new PreferenceManager(context);
+ PreferenceScreen preferenceScreen = preferenceManager.inflateFromResource(context,
+ R.xml.modes_edit_name_icon, null);
+ mPreference = preferenceScreen.findPreference("name");
+
+ mController = new ZenModeEditNamePreferenceController(context, "name", mNameSetter);
+ mController.displayPreference(preferenceScreen);
+ mEditText = mPreference.findViewById(android.R.id.edit);
+ assertThat(mEditText).isNotNull();
+ }
+
+ @Test
+ public void updateState_showsName() {
+ ZenMode mode = new TestModeBuilder().setName("A fancy name").build();
+
+ mController.updateState(mPreference, mode);
+
+ assertThat(mEditText.getText().toString()).isEqualTo("A fancy name");
+ verifyNoMoreInteractions(mNameSetter);
+ }
+
+ @Test
+ public void onEditText_callsNameSetter() {
+ ZenMode mode = new TestModeBuilder().setName("A fancy name").build();
+ mController.updateState(mPreference, mode);
+ EditText editText = mPreference.findViewById(android.R.id.edit);
+
+ editText.setText("An even fancier name");
+
+ verify(mNameSetter).accept("An even fancier name");
+ verifyNoMoreInteractions(mNameSetter);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
index 03c75fb..4c8db07 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
@@ -27,6 +27,7 @@
import androidx.preference.TwoStatePreference;
import androidx.test.core.app.ApplicationProvider;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
index 4d30ce9..1904734 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
@@ -32,6 +32,7 @@
import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.widget.LayoutPreference;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
index dda58ae..100ff43 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
@@ -27,6 +27,8 @@
import androidx.preference.Preference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java
new file mode 100644
index 0000000..dd2b49b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java
@@ -0,0 +1,148 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.fragment.app.testing.EmptyFragmentActivity;
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle;
+import androidx.test.ext.junit.rules.ActivityScenarioRule;
+
+import com.android.internal.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.stubbing.Answer;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class ZenModeNewCustomFragmentTest {
+
+ @Rule
+ public ActivityScenarioRule<EmptyFragmentActivity> mActivityScenario =
+ new ActivityScenarioRule<>(EmptyFragmentActivity.class);
+
+ private Activity mActivity;
+ private ZenModeNewCustomFragment mFragment;
+ @Mock
+ private ZenModesBackend mBackend;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mFragment = new ZenModeNewCustomFragment();
+ mFragment.setBackend(mBackend); // before onAttach()
+
+ mActivityScenario.getScenario().onActivity(activity -> {
+ mActivity = activity;
+ activity.getSupportFragmentManager().beginTransaction()
+ .add(mFragment, "tag").commitNow();
+ });
+ }
+
+ @Test
+ public void saveMode_addsCustomManualMode() {
+ mFragment.setModeName("The first name");
+ mFragment.setModeIcon(R.drawable.ic_zen_mode_type_theater);
+ mFragment.setModeName("Actually no, this name");
+
+ mFragment.saveMode();
+
+ verify(mBackend).addCustomManualMode("Actually no, this name",
+ R.drawable.ic_zen_mode_type_theater);
+ }
+
+ @Test
+ public void saveMode_withoutEdits_addsModeWithDefaultValues() {
+ mFragment.saveMode();
+
+ verify(mBackend).addCustomManualMode("Custom mode", 0);
+ }
+
+ @Test
+ public void saveMode_redirectsToModeView() {
+ when(mBackend.addCustomManualMode(any(), anyInt())).then(
+ (Answer<ZenMode>) invocationOnMock -> new TestModeBuilder()
+ .setId("Id of a mode named " + invocationOnMock.getArgument(0))
+ .setName(invocationOnMock.getArgument(0))
+ .setIconResId(invocationOnMock.getArgument(1))
+ .build());
+
+ mFragment.setModeName("something");
+ mFragment.setModeIcon(R.drawable.ic_zen_mode_type_immersive);
+ mFragment.saveMode();
+
+ Intent nextIntent = shadowOf(mActivity).getNextStartedActivity();
+ assertThat(nextIntent.getStringExtra(EXTRA_SHOW_FRAGMENT))
+ .isEqualTo(ZenModeFragment.class.getName());
+ Bundle fragmentArgs = nextIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+ assertThat(fragmentArgs).isNotNull();
+ assertThat(fragmentArgs.getString(EXTRA_AUTOMATIC_ZEN_RULE_ID)).isEqualTo(
+ "Id of a mode named something");
+ }
+
+ @Test
+ public void onCreate_whenRecreating_preservesEdits() {
+ FragmentScenario<ZenModeNewCustomFragment> scenario =
+ FragmentScenario.launch(ZenModeNewCustomFragment.class, /* bundle= */ null, 0,
+ Lifecycle.State.INITIALIZED);
+ scenario.onFragment(first -> {
+ first.setBackend(mBackend);
+ mFragment = first;
+ });
+ scenario.moveToState(Lifecycle.State.RESUMED);
+
+ // Perform some edits in the first fragment.
+ mFragment.setModeName("Don't forget me!");
+ mFragment.setModeIcon(R.drawable.ic_zen_mode_type_immersive);
+
+ // Destroy the first fragment and creates a new one (which should restore state).
+ scenario.recreate().onFragment(second -> {
+ assertThat(second).isNotSameInstanceAs(mFragment);
+ second.setBackend(mBackend);
+ mFragment = second;
+ });
+
+ mFragment.saveMode();
+ verify(mBackend).addCustomManualMode("Don't forget me!",
+ R.drawable.ic_zen_mode_type_immersive);
+ scenario.close();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java
index bfa99a0..554fc6e 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java
@@ -27,6 +27,8 @@
import androidx.preference.Preference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java
index b23d946..0820846 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java
@@ -40,6 +40,7 @@
import androidx.preference.TwoStatePreference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
index 39ba9e8..772bd1d 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
@@ -27,6 +27,8 @@
import androidx.preference.Preference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java
index c69a8a0..8272773 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java
@@ -32,6 +32,7 @@
import androidx.preference.TwoStatePreference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
index 9d9dd98..dd97d6e 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
@@ -27,6 +27,8 @@
import androidx.preference.Preference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
index 04df27e..944d432 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
@@ -51,6 +51,7 @@
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import com.android.settingslib.widget.SelectorWithWidgetPreference;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java
index c1b99e5..c453403 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java
@@ -34,6 +34,7 @@
import androidx.preference.TwoStatePreference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java
index cc6a497..42aa498 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java
@@ -39,6 +39,7 @@
import androidx.preference.PreferenceCategory;
import androidx.test.core.app.ApplicationProvider;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java
index 7dbc802..d5c7f61 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java
@@ -36,6 +36,7 @@
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java
index ffd239b..fc3cef1 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java
@@ -49,6 +49,7 @@
import com.android.settings.SettingsActivity;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settingslib.PrimarySwitchPreference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java
index 661f8ba..e105641 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java
@@ -37,6 +37,7 @@
import androidx.test.ext.junit.rules.ActivityScenarioRule;
import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.ModeType;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
@@ -57,6 +58,9 @@
private static final ModeType APP_PROVIDED_MODE_TYPE = new ModeType("Mode", new ColorDrawable(),
"Details", new Intent().setComponent(new ComponentName("pkg", "configActivity")));
+ private static final ModeType CUSTOM_MANUAL_TYPE = new ModeType("Custom", new ColorDrawable(),
+ null, null); // null creationActivityIntent means custom_manual.
+
private static final ImmutableList<ZenMode> EXISTING_MODES = ImmutableList.of(
new TestModeBuilder().setId("A").build(),
new TestModeBuilder().setId("B").build(),
@@ -95,6 +99,16 @@
}
@Test
+ public void onChosenModeTypeForAdd_customManualMode_startsNameAndIconPicker() {
+ mFragment.onChosenModeTypeForAdd(CUSTOM_MANUAL_TYPE);
+
+ Intent nextIntent = shadowOf(mActivity).getNextStartedActivity();
+ assertThat(nextIntent).isNotNull();
+ assertThat(nextIntent.getStringExtra(EXTRA_SHOW_FRAGMENT))
+ .isEqualTo(ZenModeNewCustomFragment.class.getName());
+ }
+
+ @Test
public void onActivityResult_modeWasCreated_opensIt() {
when(mBackend.getModes()).thenReturn(EXISTING_MODES);
mFragment.onChosenModeTypeForAdd(APP_PROVIDED_MODE_TYPE);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
index aaf7059..dafcee7 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
@@ -21,6 +21,7 @@
import android.content.Context;
import android.service.notification.ZenModeConfig;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import org.junit.Before;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java
index c0f96be..4c16f26 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java
@@ -37,6 +37,7 @@
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import com.android.settingslib.notification.modes.ZenModesBackend;
import com.android.settingslib.search.SearchIndexableRaw;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java
index 62b5ee0..e847fb7 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java
@@ -16,6 +16,10 @@
package com.android.settings.notification.modes;
+import static android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
+import static android.provider.Settings.Global.ZEN_MODE_OFF;
+import static android.service.notification.Condition.SOURCE_UNKNOWN;
+import static android.service.notification.Condition.STATE_TRUE;
import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
@@ -24,13 +28,22 @@
import static com.google.common.truth.Truth.assertThat;
+import android.app.Flags;
+import android.content.ComponentName;
import android.content.Context;
+import android.net.Uri;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.Condition;
import android.service.notification.ZenDeviceEffects;
+import android.service.notification.ZenModeConfig;
import android.service.notification.ZenPolicy;
+import com.android.settingslib.notification.modes.TestModeBuilder;
import com.android.settingslib.notification.modes.ZenMode;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
@@ -46,6 +59,10 @@
private ZenModeSummaryHelper mSummaryHelper;
+ @Rule
+ public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(
+ SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT);
+
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
@@ -351,4 +368,87 @@
assertThat(mSummaryHelper.getAppsSummary(zenMode, apps)).isEqualTo("FifthApp, FourthApp, "
+ "and 4 more can interrupt");
}
+
+ @Test
+ @EnableFlags(Flags.FLAG_MODES_UI)
+ public void getSoundSummary_off_noRules() {
+ ZenModeConfig config = new ZenModeConfig();
+
+ assertThat(mSummaryHelper.getSoundSummary(ZEN_MODE_OFF, config)).isEqualTo("Off");
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_MODES_UI)
+ public void getSoundSummary_off_oneRule() {
+ ZenModeConfig config = new ZenModeConfig();
+ ZenModeConfig.ZenRule rule = new ZenModeConfig.ZenRule();
+ rule.enabled = true;
+ config.automaticRules.put("key", rule);
+
+ assertThat(mSummaryHelper.getSoundSummary(ZEN_MODE_OFF, config))
+ .isEqualTo("Off / 1 mode can turn on automatically");
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_MODES_UI)
+ public void getSoundSummary_off_twoRules() {
+ ZenModeConfig config = new ZenModeConfig();
+ ZenModeConfig.ZenRule rule = new ZenModeConfig.ZenRule();
+ rule.enabled = true;
+ ZenModeConfig.ZenRule rule2 = new ZenModeConfig.ZenRule();
+ rule2.enabled = true;
+ config.automaticRules.put("key", rule);
+ config.automaticRules.put("key2", rule2);
+
+ assertThat(mSummaryHelper.getSoundSummary(ZEN_MODE_OFF, config))
+ .isEqualTo("Off / 2 modes can turn on automatically");
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_MODES_UI)
+ public void getSoundSummary_on_noDescription() {
+ ZenModeConfig config = new ZenModeConfig();
+ config.manualRule.conditionId = Uri.EMPTY;
+ config.manualRule.pkg = "android";
+ config.manualRule.zenMode = ZEN_MODE_IMPORTANT_INTERRUPTIONS;
+ config.manualRule.condition = new Condition(Uri.EMPTY, "", STATE_TRUE, SOURCE_UNKNOWN);
+ assertThat(mSummaryHelper.getSoundSummary(ZEN_MODE_IMPORTANT_INTERRUPTIONS, config))
+ .isEqualTo("On");
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_MODES_UI)
+ public void getSoundSummary_on_manualDescription() {
+ ZenModeConfig config = new ZenModeConfig();
+ config.manualRule.conditionId = ZenModeConfig.toCountdownConditionId(
+ System.currentTimeMillis() + 10000, false);
+ config.manualRule.pkg = "android";
+ config.manualRule.zenMode = ZEN_MODE_IMPORTANT_INTERRUPTIONS;
+ config.manualRule.condition = new Condition(Uri.EMPTY, "", STATE_TRUE, SOURCE_UNKNOWN);
+ assertThat(mSummaryHelper.getSoundSummary(ZEN_MODE_IMPORTANT_INTERRUPTIONS, config))
+ .startsWith("On /");
+ }
+
+ @Test
+ @EnableFlags(Flags.FLAG_MODES_UI)
+ public void getSoundSummary_on_automatic() {
+ ZenModeConfig config = new ZenModeConfig();
+ ZenModeConfig.ZenRule rule = new ZenModeConfig.ZenRule();
+ rule.configurationActivity = new ComponentName("a", "a");
+ rule.component = new ComponentName("b", "b");
+ rule.conditionId = new Uri.Builder().scheme("hello").build();
+ rule.condition = new Condition(rule.conditionId, "", STATE_TRUE);
+ rule.enabled = true;
+ rule.creationTime = 123;
+ rule.id = "id";
+ rule.zenMode = ZEN_MODE_IMPORTANT_INTERRUPTIONS;
+ rule.modified = true;
+ rule.name = "name";
+ rule.snoozing = false;
+ rule.pkg = "b";
+ config.automaticRules.put("key", rule);
+
+ assertThat(mSummaryHelper.getSoundSummary(ZEN_MODE_IMPORTANT_INTERRUPTIONS, config))
+ .startsWith("On /");
+ }
}
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java
index f611c9b..8d551e5 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java
@@ -109,20 +109,4 @@
verify(mPreference, never()).setSummary(anyString());
}
-
- @Test
- @EnableFlags(Flags.FLAG_MODES_UI)
- public void updateState_modesUi_resetsTitleAndFragment() {
- mController.updateState(mPreference);
- verify(mPreference).setTitle(anyInt()); // Resource IDs are ints
- verify(mPreference).setFragment(ZenModesListFragment.class.getCanonicalName());
- }
-
- @Test
- @DisableFlags(Flags.FLAG_MODES_UI)
- public void updateState_noModesUi_doesNotSetTitleAndFragment() {
- mController.updateState(mPreference);
- verify(mPreference, never()).setTitle(anyInt());
- verify(mPreference, never()).setFragment(anyString());
- }
}
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
index e408cd0..b555f00 100644
--- a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
@@ -29,6 +29,7 @@
import android.text.TextUtils;
import com.android.settings.network.NetworkProviderSettings;
+import com.android.settings.spa.search.SearchablePage;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.FakeIndexProvider;
import com.android.settingslib.search.SearchIndexableData;
@@ -117,8 +118,10 @@
public void testAllClassNamesHaveProviders() {
for (SearchIndexableData data :
mSearchProvider.getSearchIndexableResources().getProviderValues()) {
- if (DatabaseIndexingUtils.getSearchIndexProvider(data.getTargetClass()) == null) {
- fail(data.getTargetClass().getName() + "is not an index provider");
+ Class<?> targetClass = data.getTargetClass();
+ if (DatabaseIndexingUtils.getSearchIndexProvider(targetClass) == null
+ && !SearchablePage.class.isAssignableFrom(targetClass)) {
+ fail(targetClass.getName() + " is not an index provider");
}
}
}
diff --git a/tests/robotests/src/com/android/settings/wifi/AddWifiNetworkPreferenceTest.java b/tests/robotests/src/com/android/settings/wifi/AddWifiNetworkPreferenceTest.java
index 5f88eb2..c0adaf3 100644
--- a/tests/robotests/src/com/android/settings/wifi/AddWifiNetworkPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/AddWifiNetworkPreferenceTest.java
@@ -15,19 +15,23 @@
*/
package com.android.settings.wifi;
+import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG;
+
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
import android.content.Context;
import android.os.UserManager;
import androidx.test.core.app.ApplicationProvider;
-import com.android.settingslib.RestrictedLockUtils;
-
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
import org.mockito.Spy;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
@@ -42,31 +46,44 @@
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@Spy
Context mContext = ApplicationProvider.getApplicationContext();
+ @Mock
+ private UserManager mUserManager;
private AddWifiNetworkPreference mPreference;
@Before
public void setUp() {
- mPreference = new AddWifiNetworkPreference(mContext);
+ when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
+
+ mPreference = spy(new AddWifiNetworkPreference(mContext));
}
@Test
- public void updatePreferenceForRestriction_isAddWifiConfigAllowed_prefIsEnabled() {
- // If the user is allowed to add Wi-Fi configuration then the EnforcedAdmin will be null.
- RestrictedLockUtils.EnforcedAdmin enforcedAdmin = null;
+ public void checkRestrictionAndSetDisabled_disabledByAdmin_keepEnabledForClicks() {
+ when(mPreference.isDisabledByAdmin()).thenReturn(true);
- mPreference.setDisabledByAdmin(enforcedAdmin);
+ mPreference.checkRestrictionAndSetDisabled();
assertThat(mPreference.isEnabled()).isTrue();
}
@Test
- public void updatePreferenceForRestriction_isAddWifiConfigNotAllowed_prefIsDisabled() {
- RestrictedLockUtils.EnforcedAdmin enforcedAdmin = new RestrictedLockUtils.EnforcedAdmin(
- null /* component */, UserManager.DISALLOW_ADD_WIFI_CONFIG, null /* user */);
+ public void checkRestrictionAndSetDisabled_notDisabledByAdmin_setDisabled() {
+ when(mPreference.isDisabledByAdmin()).thenReturn(false);
+ when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(true);
- mPreference.setDisabledByAdmin(enforcedAdmin);
+ mPreference.checkRestrictionAndSetDisabled();
assertThat(mPreference.isEnabled()).isFalse();
}
+
+ @Test
+ public void checkRestrictionAndSetDisabled_noRestriction_setEnabled() {
+ when(mPreference.isDisabledByAdmin()).thenReturn(false);
+ when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(false);
+
+ mPreference.checkRestrictionAndSetDisabled();
+
+ assertThat(mPreference.isEnabled()).isTrue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragmentTest.java
index 13f575f..38b4b71 100644
--- a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragmentTest.java
@@ -26,6 +26,7 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
+import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -36,13 +37,19 @@
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
import androidx.fragment.app.FragmentTransaction;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
+import com.android.settings.flags.Flags;
+
import org.junit.Before;
import org.junit.Ignore;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
@@ -55,6 +62,7 @@
private WifiDppQrCodeGeneratorFragment mFragment;
private Context mContext;
+ @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Before
public void setUp() {
@@ -163,4 +171,18 @@
assertThat(mFragment.createNearbyButton(new Intent(), v -> {
})).isNotNull();
}
+
+ @Test
+ @EnableFlags(Flags.FLAG_ENABLE_WIFI_SHARING_RUNTIME_FRAGMENT)
+ public void getMetricsCatetory_shouldReturnDppQrSharing() {
+ assertThat(mFragment.getMetricsCategory())
+ .isEqualTo(SettingsEnums.SETTINGS_WIFI_DPP_QR_SHARING);
+ }
+
+ @Test
+ @DisableFlags(Flags.FLAG_ENABLE_WIFI_SHARING_RUNTIME_FRAGMENT)
+ public void getMetricsCatetory_shouldReturnDppConfigurator() {
+ assertThat(mFragment.getMetricsCategory())
+ .isEqualTo(SettingsEnums.SETTINGS_WIFI_DPP_CONFIGURATOR);
+ }
}
diff --git a/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
index e0f4b9e..2cb41bc 100644
--- a/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
@@ -25,7 +25,6 @@
import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.biometrics.face.FaceFeatureProvider;
import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider;
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider;
import com.android.settings.bluetooth.BluetoothFeatureProvider;
import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider;
import com.android.settings.connecteddevice.stylus.StylusFeatureProvider;
@@ -83,7 +82,6 @@
public final BluetoothFeatureProvider mBluetoothFeatureProvider;
public final FaceFeatureProvider mFaceFeatureProvider;
public final FingerprintFeatureProvider mFingerprintFeatureProvider;
- public final BiometricsRepositoryProvider mBiometricsRepositoryProvider;
public PanelFeatureProvider panelFeatureProvider;
public SlicesFeatureProvider slicesFeatureProvider;
@@ -139,7 +137,6 @@
mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
mFaceFeatureProvider = mock(FaceFeatureProvider.class);
mFingerprintFeatureProvider = mock(FingerprintFeatureProvider.class);
- mBiometricsRepositoryProvider = mock(BiometricsRepositoryProvider.class);
wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
securitySettingsFeatureProvider = mock(SecuritySettingsFeatureProvider.class);
mAccessibilitySearchFeatureProvider = mock(AccessibilitySearchFeatureProvider.class);
@@ -272,11 +269,6 @@
}
@Override
- public BiometricsRepositoryProvider getBiometricsRepositoryProvider() {
- return mBiometricsRepositoryProvider;
- }
-
- @Override
public WifiTrackerLibProvider getWifiTrackerLibProvider() {
return wifiTrackerLibProvider;
}
diff --git a/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchRepositoryTest.kt
new file mode 100644
index 0000000..911dfd2
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchRepositoryTest.kt
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.search
+
+import android.content.Context
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.spa.search.SpaSearchRepository.Companion.createSearchIndexableData
+import com.android.settingslib.spa.framework.common.SettingsPageProvider
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.mock
+
+@RunWith(AndroidJUnit4::class)
+class SpaSearchRepositoryTest {
+
+ @Test
+ fun createSearchIndexableData() {
+ val pageProvider =
+ object : SettingsPageProvider {
+ override val name = PAGE_NAME
+ }
+
+ val searchIndexableData = pageProvider.createSearchIndexableData { listOf(TITLE) }
+ val dynamicRawDataToIndex =
+ searchIndexableData.searchIndexProvider.getDynamicRawDataToIndex(mock<Context>(), true)
+
+ assertThat(searchIndexableData.targetClass).isEqualTo(pageProvider::class.java)
+ assertThat(dynamicRawDataToIndex).hasSize(1)
+ assertThat(dynamicRawDataToIndex[0].title).isEqualTo(TITLE)
+ }
+
+ private companion object {
+ const val PAGE_NAME = "PageName"
+ const val TITLE = "Title"
+ }
+}
diff --git a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
index 5ca24a3..dc15f0b 100644
--- a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
+++ b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
@@ -23,7 +23,6 @@
import com.android.settings.applications.ApplicationFeatureProvider
import com.android.settings.biometrics.face.FaceFeatureProvider
import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider
import com.android.settings.bluetooth.BluetoothFeatureProvider
import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider
import com.android.settings.connecteddevice.stylus.StylusFeatureProvider
@@ -126,8 +125,6 @@
get() = TODO("Not yet implemented")
override val fingerprintFeatureProvider: FingerprintFeatureProvider
get() = TODO("Not yet implemented")
- override val biometricsRepositoryProvider: BiometricsRepositoryProvider
- get() = TODO("Not yet implemented")
override val wifiTrackerLibProvider: WifiTrackerLibProvider
get() = TODO("Not yet implemented")
override val securitySettingsFeatureProvider: SecuritySettingsFeatureProvider
diff --git a/tests/unit/src/com/android/settings/biometrics2/OWNERS b/tests/unit/src/com/android/settings/biometrics2/OWNERS
deleted file mode 100644
index a257ed8..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-include /src/com/android/settings/biometrics/OWNERS
diff --git a/tests/unit/src/com/android/settings/biometrics2/repository/FingerprintRepositoryTest.java b/tests/unit/src/com/android/settings/biometrics2/repository/FingerprintRepositoryTest.java
deleted file mode 100644
index 8989595..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/repository/FingerprintRepositoryTest.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.repository;
-
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_HOME_BUTTON;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_REAR;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UNKNOWN;
-
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupSuwMaxFingerprintsEnrollable;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.hardware.biometrics.SensorProperties;
-import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-import java.util.ArrayList;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintRepositoryTest {
-
- @Rule public final MockitoRule mockito = MockitoJUnit.rule();
-
- @Mock private Resources mResources;
- @Mock private FingerprintManager mFingerprintManager;
-
- private Context mContext;
-
- @Before
- public void setUp() {
- mContext = ApplicationProvider.getApplicationContext();
- }
-
- @Test
- public void testCanAssumeSensorType_forUnknownSensor() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_UNKNOWN, 1);
- assertThat(repository.canAssumeUdfps()).isFalse();
- assertThat(repository.canAssumeSfps()).isFalse();
- }
-
- @Test
- public void testCanAssumeSensorType_forRearSensor() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_REAR, 1);
- assertThat(repository.canAssumeUdfps()).isFalse();
- assertThat(repository.canAssumeSfps()).isFalse();
- }
-
- @Test
- public void testCanAssumeSensorType_forUdfpsUltrasonicSensor() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_UDFPS_ULTRASONIC, 1);
- assertThat(repository.canAssumeUdfps()).isTrue();
- assertThat(repository.canAssumeSfps()).isFalse();
- }
-
- @Test
- public void testCanAssumeSensorType_forUdfpsOpticalSensor() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_UDFPS_OPTICAL, 1);
- assertThat(repository.canAssumeUdfps()).isTrue();
- assertThat(repository.canAssumeSfps()).isFalse();
- }
-
- @Test
- public void testCanAssumeSensorType_forPowerButtonSensor() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_POWER_BUTTON, 1);
- assertThat(repository.canAssumeUdfps()).isFalse();
- assertThat(repository.canAssumeSfps()).isTrue();
- }
-
- @Test
- public void testCanAssumeSensorType_forHomeButtonSensor() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_HOME_BUTTON, 1);
- assertThat(repository.canAssumeUdfps()).isFalse();
- assertThat(repository.canAssumeSfps()).isFalse();
- }
-
- @Test
- public void testGetMaxFingerprints() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_UNKNOWN, 999);
- assertThat(repository.getMaxFingerprints()).isEqualTo(999);
- }
-
- @Test
- public void testGetNumOfEnrolledFingerprintsSize() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_UNKNOWN, 999);
- setupFingerprintEnrolledFingerprints(mFingerprintManager, 10, 3);
- setupFingerprintEnrolledFingerprints(mFingerprintManager, 22, 99);
-
- assertThat(repository.getNumOfEnrolledFingerprintsSize(10)).isEqualTo(3);
- assertThat(repository.getNumOfEnrolledFingerprintsSize(22)).isEqualTo(99);
- }
-
- @Test
- public void testGetMaxFingerprintsInSuw() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_UNKNOWN, 999);
- setupSuwMaxFingerprintsEnrollable(mContext, mResources, 333);
- assertThat(repository.getMaxFingerprintsInSuw(mResources))
- .isEqualTo(333);
-
- setupSuwMaxFingerprintsEnrollable(mContext, mResources, 20);
- assertThat(repository.getMaxFingerprintsInSuw(mResources)).isEqualTo(20);
- }
-
- @Test
- public void testGetFirstFingerprintSensorPropertiesInternal() {
- final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
- final FingerprintSensorPropertiesInternal prop = new FingerprintSensorPropertiesInternal(
- 0 /* sensorId */,
- SensorProperties.STRENGTH_STRONG,
- 5,
- new ArrayList<>() /* componentInfo */,
- TYPE_UDFPS_OPTICAL,
- true /* resetLockoutRequiresHardwareAuthToken */);
- props.add(prop);
- doAnswer(invocation -> {
- final IFingerprintAuthenticatorsRegisteredCallback callback =
- invocation.getArgument(0);
- callback.onAllAuthenticatorsRegistered(props);
- return null;
- }).when(mFingerprintManager).addAuthenticatorsRegisteredCallback(any());
-
- final FingerprintRepository repository = new FingerprintRepository(mFingerprintManager);
- assertThat(repository.getFirstFingerprintSensorPropertiesInternal()).isEqualTo(prop);
- }
-
- @Test
- public void testGetEnrollStageCount() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_UNKNOWN, 999);
-
- final int expectedValue = 24;
- doReturn(expectedValue).when(mFingerprintManager).getEnrollStageCount();
-
- assertThat(repository.getEnrollStageCount()).isEqualTo(expectedValue);
- }
-
- @Test
- public void testGetEnrollStageThreshold() {
- final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
- TYPE_UNKNOWN, 999);
-
- final float expectedValue0 = 0.42f;
- final float expectedValue1 = 0.24f;
- final float expectedValue2 = 0.33f;
- final float expectedValue3 = 0.90f;
- doReturn(expectedValue0).when(mFingerprintManager).getEnrollStageThreshold(0);
- doReturn(expectedValue1).when(mFingerprintManager).getEnrollStageThreshold(1);
- doReturn(expectedValue2).when(mFingerprintManager).getEnrollStageThreshold(2);
- doReturn(expectedValue3).when(mFingerprintManager).getEnrollStageThreshold(3);
-
- assertThat(repository.getEnrollStageThreshold(2)).isEqualTo(expectedValue2);
- assertThat(repository.getEnrollStageThreshold(1)).isEqualTo(expectedValue1);
- assertThat(repository.getEnrollStageThreshold(3)).isEqualTo(expectedValue3);
- assertThat(repository.getEnrollStageThreshold(0)).isEqualTo(expectedValue0);
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.kt
deleted file mode 100644
index ac62232..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.kt
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.model
-
-import android.content.Intent
-import android.os.Bundle
-import android.os.SystemClock
-import android.os.UserHandle
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.password.ChooseLockSettingsHelper
-import com.google.common.truth.Truth
-import org.junit.Test
-import org.junit.runner.RunWith
-import java.util.Arrays
-
-@RunWith(AndroidJUnit4::class)
-class CredentialModelTest {
-
- private val clock = SystemClock.elapsedRealtimeClock()
-
- @Test
- fun testNullBundle() {
- val credentialModel = CredentialModel(null, clock)
- Truth.assertThat(credentialModel.userId).isEqualTo(UserHandle.myUserId())
- }
-
- companion object {
- @JvmStatic
- fun newCredentialModelIntentExtras(
- userId: Int, challenge: Long,
- token: ByteArray?, gkPwHandle: Long
- ): Bundle {
- val bundle = Bundle()
- bundle.putInt(Intent.EXTRA_USER_ID, userId)
- bundle.putLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge)
- bundle.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token)
- bundle.putLong(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
- return bundle
- }
-
- @JvmStatic
- fun newValidTokenCredentialIntentExtras(userId: Int): Bundle {
- return newCredentialModelIntentExtras(
- userId, 1L, byteArrayOf(0, 1, 2),
- CredentialModel.INVALID_GK_PW_HANDLE
- )
- }
-
- @JvmStatic
- fun newOnlySensorValidCredentialIntentExtras(userId: Int): Bundle {
- return newCredentialModelIntentExtras(
- userId, CredentialModel.INVALID_CHALLENGE, null,
- CredentialModel.INVALID_GK_PW_HANDLE
- )
- }
-
- @JvmStatic
- fun newGkPwHandleCredentialIntentExtras(userId: Int, gkPwHandle: Long): Bundle {
- return newCredentialModelIntentExtras(
- userId,
- CredentialModel.INVALID_CHALLENGE,
- null,
- gkPwHandle
- )
- }
-
- private fun checkBundleLongValue(
- bundle1: Bundle, bundle2: Bundle,
- key: String
- ) {
- if (!bundle1.containsKey(key)) {
- return
- }
- val value1 = bundle1.getInt(key)
- val value2 = bundle2.getInt(key)
- Truth.assertWithMessage(
- "bundle not match, key:" + key + ", value1:" + value1 + ", value2:"
- + value2
- ).that(value1).isEqualTo(value2)
- }
-
- private fun checkBundleIntValue(
- bundle1: Bundle, bundle2: Bundle,
- key: String
- ) {
- if (!bundle1.containsKey(key)) {
- return
- }
- val value1 = bundle1.getLong(key)
- val value2 = bundle2.getLong(key)
- Truth.assertWithMessage(
- "bundle not match, key:" + key + ", value1:" + value1 + ", value2:"
- + value2
- ).that(value1).isEqualTo(value2)
- }
-
- private fun checkBundleByteArrayValue(
- bundle1: Bundle, bundle2: Bundle,
- key: String
- ) {
- if (!bundle1.containsKey(key)) {
- return
- }
- val value1 = bundle1.getByteArray(key)
- val value2 = bundle2.getByteArray(key)
- val errMsg = ("bundle not match, key:" + key + ", value1:" + Arrays.toString(value1)
- + ", value2:" + Arrays.toString(value2))
- if (value1 == null) {
- Truth.assertWithMessage(errMsg).that(value2).isNull()
- } else {
- Truth.assertWithMessage(errMsg).that(value1.size).isEqualTo(
- value2!!.size
- )
- for (i in value1.indices) {
- Truth.assertWithMessage(errMsg).that(value1[i]).isEqualTo(
- value2[i]
- )
- }
- }
- }
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/model/EnrollmentRequestTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/model/EnrollmentRequestTest.kt
deleted file mode 100644
index b301433..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/model/EnrollmentRequestTest.kt
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.model
-
-import android.content.Context
-import android.content.Intent
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.biometrics.BiometricEnrollActivity
-import com.google.android.setupcompat.util.WizardManagerHelper
-import com.google.common.truth.Truth
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@RunWith(AndroidJUnit4::class)
-class EnrollmentRequestTest {
-
- private val context = ApplicationProvider.getApplicationContext<Context>()
-
- @Test
- fun testIsSuw() {
- // Default false
- Truth.assertThat(EnrollmentRequest(Intent(), context, true).isSuw).isFalse()
- Truth.assertThat(EnrollmentRequest(Intent(), context, false).isSuw).isFalse()
- val trueIntent = Intent()
- trueIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
- Truth.assertThat(EnrollmentRequest(trueIntent, context, true).isSuw).isTrue()
- Truth.assertThat(EnrollmentRequest(trueIntent, context, false).isSuw).isFalse()
- val falseIntent = Intent()
- trueIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, false)
- Truth.assertThat(EnrollmentRequest(falseIntent, context, true).isSuw).isFalse()
- Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSuw).isFalse()
- }
-
- @Test
- fun testIsAfterSuwOrSuwSuggestedAction() {
- // Default false
- Truth.assertThat(
- EnrollmentRequest(Intent(), context, true)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- Truth.assertThat(
- EnrollmentRequest(Intent(), context, false)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- val deferredTrueIntent = Intent()
- deferredTrueIntent.putExtra(WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP, true)
- Truth.assertThat(
- EnrollmentRequest(deferredTrueIntent, context, true)
- .isAfterSuwOrSuwSuggestedAction
- ).isTrue()
- Truth.assertThat(
- EnrollmentRequest(deferredTrueIntent, context, false)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- val deferredFalseIntent = Intent()
- deferredFalseIntent.putExtra(WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP, false)
- Truth.assertThat(
- EnrollmentRequest(deferredFalseIntent, context, false)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- Truth.assertThat(
- EnrollmentRequest(deferredFalseIntent, context, false)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- val portalTrueIntent = Intent()
- portalTrueIntent.putExtra(WizardManagerHelper.EXTRA_IS_PORTAL_SETUP, true)
- Truth.assertThat(
- EnrollmentRequest(portalTrueIntent, context, true)
- .isAfterSuwOrSuwSuggestedAction
- ).isTrue()
- Truth.assertThat(
- EnrollmentRequest(portalTrueIntent, context, false)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- val portalFalseIntent = Intent()
- portalFalseIntent.putExtra(WizardManagerHelper.EXTRA_IS_PORTAL_SETUP, false)
- Truth.assertThat(
- EnrollmentRequest(portalFalseIntent, context, false)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- Truth.assertThat(
- EnrollmentRequest(portalFalseIntent, context, false)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- val suggestedTrueIntent = Intent()
- suggestedTrueIntent.putExtra(WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, true)
- Truth.assertThat(
- EnrollmentRequest(suggestedTrueIntent, context, true)
- .isAfterSuwOrSuwSuggestedAction
- ).isTrue()
- Truth.assertThat(
- EnrollmentRequest(suggestedTrueIntent, context, false)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- val suggestedFalseIntent = Intent()
- suggestedFalseIntent.putExtra(WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, false)
- Truth.assertThat(
- EnrollmentRequest(suggestedFalseIntent, context, false)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- Truth.assertThat(
- EnrollmentRequest(suggestedFalseIntent, context, false)
- .isAfterSuwOrSuwSuggestedAction
- ).isFalse()
- }
-
- @Test
- fun testGetSuwExtras_inSuw() {
- val suwIntent = Intent()
- suwIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
- val setupRequest = EnrollmentRequest(suwIntent, context, true)
- val bundle = setupRequest.suwExtras
- Truth.assertThat(bundle).isNotNull()
- Truth.assertThat(bundle.size()).isAtLeast(1)
- Truth.assertThat(bundle.getBoolean(WizardManagerHelper.EXTRA_IS_SETUP_FLOW)).isTrue()
- }
-
- @Test
- fun testGetSuwExtras_notInSuw() {
- val suwIntent = Intent()
- suwIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
- val setupRequest = EnrollmentRequest(suwIntent, context, false)
- val bundle = setupRequest.suwExtras
- Truth.assertThat(bundle).isNotNull()
- Truth.assertThat(bundle.size()).isEqualTo(0)
- }
-
- @Test
- fun testIsSkipIntro() {
- // Default false
- Truth.assertThat(EnrollmentRequest(Intent(), context, true).isSkipIntro).isFalse()
- Truth.assertThat(EnrollmentRequest(Intent(), context, false).isSkipIntro).isFalse()
- val trueIntent = Intent()
- trueIntent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, true)
- Truth.assertThat(EnrollmentRequest(trueIntent, context, true).isSkipIntro).isTrue()
- Truth.assertThat(EnrollmentRequest(trueIntent, context, false).isSkipIntro).isTrue()
- val falseIntent = Intent()
- falseIntent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, false)
- Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipIntro).isFalse()
- Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipIntro).isFalse()
- }
-
- @Test
- fun testIsSkipFindSensor() {
- // Default false
- Truth.assertThat(EnrollmentRequest(Intent(), context, true).isSkipFindSensor)
- .isFalse()
- Truth.assertThat(EnrollmentRequest(Intent(), context, false).isSkipFindSensor)
- .isFalse()
- val trueIntent = Intent()
- trueIntent.putExtra(EnrollmentRequest.EXTRA_SKIP_FIND_SENSOR, true)
- Truth.assertThat(EnrollmentRequest(trueIntent, context, true).isSkipFindSensor).isTrue()
- Truth.assertThat(EnrollmentRequest(trueIntent, context, false).isSkipFindSensor).isTrue()
- val falseIntent = Intent()
- falseIntent.putExtra(EnrollmentRequest.EXTRA_SKIP_FIND_SENSOR, false)
- Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipFindSensor)
- .isFalse()
- Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipFindSensor)
- .isFalse()
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.kt
deleted file mode 100644
index e708f3b..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.kt
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.viewmodel
-
-import android.app.Activity
-import android.app.admin.DevicePolicyManager
-import android.content.Intent
-import android.os.Bundle
-import android.os.SystemClock
-import android.os.UserHandle
-import androidx.activity.result.ActivityResult
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.internal.widget.LockPatternUtils
-import com.android.internal.widget.VerifyCredentialResponse
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics2.ui.model.CredentialModel
-import com.android.settings.biometrics2.ui.model.CredentialModelTest.Companion.newGkPwHandleCredentialIntentExtras
-import com.android.settings.biometrics2.ui.model.CredentialModelTest.Companion.newOnlySensorValidCredentialIntentExtras
-import com.android.settings.biometrics2.ui.model.CredentialModelTest.Companion.newValidTokenCredentialIntentExtras
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.ChallengeGenerator
-import com.android.settings.password.ChooseLockPattern
-import com.android.settings.password.ChooseLockSettingsHelper
-import com.google.common.truth.Truth.assertThat
-import java.util.concurrent.atomic.AtomicBoolean
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.UnconfinedTestDispatcher
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.Mockito
-import org.mockito.junit.MockitoJUnit
-import org.mockito.junit.MockitoRule
-import org.mockito.Mockito.`when` as whenever
-
-@RunWith(AndroidJUnit4::class)
-class AutoCredentialViewModelTest {
-
- @get:Rule val mockito: MockitoRule = MockitoJUnit.rule()
-
- @Mock private lateinit var lockPatternUtils: LockPatternUtils
-
- private var challengeGenerator: TestChallengeGenerator = TestChallengeGenerator()
-
- private lateinit var viewModel: AutoCredentialViewModel
- private fun newAutoCredentialViewModel(bundle: Bundle?): AutoCredentialViewModel {
- return AutoCredentialViewModel(
- ApplicationProvider.getApplicationContext(),
- lockPatternUtils,
- challengeGenerator,
- CredentialModel(bundle, SystemClock.elapsedRealtimeClock())
- )
- }
-
- @Before
- fun setUp() {
- challengeGenerator = TestChallengeGenerator()
- }
-
- private fun setupGenerateChallenge(userId: Int, newSensorId: Int, newChallenge: Long) {
- whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
- DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
- )
- challengeGenerator.userId = userId
- challengeGenerator.sensorId = newSensorId
- challengeGenerator.challenge = newChallenge
- }
-
- @Test
- fun testCheckCredential_validCredentialCase() = runTest {
- val userId = 99
- viewModel = newAutoCredentialViewModel(newValidTokenCredentialIntentExtras(userId))
- whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
- DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
- )
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run credential check
- val action = viewModel.checkCredential(backgroundScope)
- runCurrent()
-
- // Check viewModel behavior
- assertThat(action).isEqualTo(CredentialAction.CREDENTIAL_VALID)
- assertThat(generateFails.size).isEqualTo(0)
-
- // Check createGeneratingChallengeExtras()
- assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
- }
-
- @Test
- fun testCheckCredential_needToChooseLock() = runTest {
- val userId = 100
- viewModel = newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
- whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
- DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
- )
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run credential check
- val action = viewModel.checkCredential(backgroundScope)
- runCurrent()
-
- // Check viewModel behavior
- assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CHOOSE_LOCK)
- assertThat(generateFails.size).isEqualTo(0)
-
- // Check createGeneratingChallengeExtras()
- assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
- }
-
- @Test
- fun testCheckCredential_needToConfirmLockForSomething() = runTest {
- val userId = 101
- viewModel =
- newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
- whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
- DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
- )
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run credential check
- val action = viewModel.checkCredential(backgroundScope)
- runCurrent()
-
- // Check viewModel behavior
- assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK)
- assertThat(generateFails.size).isEqualTo(0)
-
- // Check createGeneratingChallengeExtras()
- assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
- }
-
- @Test
- fun testCheckCredential_needToConfirmLockForNumeric() = runTest {
- val userId = 102
- viewModel =
- newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
- whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
- DevicePolicyManager.PASSWORD_QUALITY_NUMERIC
- )
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run credential check
- val action = viewModel.checkCredential(backgroundScope)
- runCurrent()
-
- // Check viewModel behavior
- assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK)
- assertThat(generateFails.size).isEqualTo(0)
-
- // Check createGeneratingChallengeExtras()
- assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
- }
-
- @Test
- fun testCheckCredential_needToConfirmLockForAlphabetic() = runTest {
- val userId = 103
- viewModel =
- newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
- whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
- DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC
- )
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run credential check
- val action = viewModel.checkCredential(this)
- runCurrent()
-
- // Check viewModel behavior
- assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK)
- assertThat(generateFails.size).isEqualTo(0)
-
- // Check createGeneratingChallengeExtras()
- assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
- }
-
- @Test
- fun testCheckCredential_generateChallenge() = runTest {
- val userId = 104
- val gkPwHandle = 1111L
- viewModel =
- newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
- whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
- DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
- )
- val newSensorId = 10
- val newChallenge = 20L
- setupGenerateChallenge(userId, newSensorId, newChallenge)
- whenever(
- lockPatternUtils.verifyGatekeeperPasswordHandle(
- gkPwHandle,
- newChallenge,
- userId
- )
- )
- .thenReturn(newGoodCredential(gkPwHandle, byteArrayOf(1)))
- val hasCalledRemoveGkPwHandle = AtomicBoolean()
- Mockito.doAnswer {
- hasCalledRemoveGkPwHandle.set(true)
- null
- }.`when`(lockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle)
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run credential check
- val action = viewModel.checkCredential(backgroundScope)
- runCurrent()
-
- // Check viewModel behavior
- assertThat(action).isEqualTo(CredentialAction.IS_GENERATING_CHALLENGE)
- assertThat(generateFails.size).isEqualTo(0)
-
- // Check data inside CredentialModel
- assertThat(viewModel.token).isNotNull()
- assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
- assertThat(hasCalledRemoveGkPwHandle.get()).isFalse()
-
- // Check createGeneratingChallengeExtras()
- val generatingChallengeExtras = viewModel.createGeneratingChallengeExtras()
- assertThat(generatingChallengeExtras).isNotNull()
- assertThat(generatingChallengeExtras!!.getLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE))
- .isEqualTo(newChallenge)
- val tokens =
- generatingChallengeExtras.getByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
- assertThat(tokens).isNotNull()
- assertThat(tokens!!.size).isEqualTo(1)
- assertThat(tokens[0]).isEqualTo(1)
- }
-
- @Test
- fun testCheckCredential_generateChallengeFail() = runTest {
- backgroundScope.launch {
- val userId = 104
- val gkPwHandle = 1111L
- viewModel =
- newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
- whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
- DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
- )
- val newSensorId = 10
- val newChallenge = 20L
- setupGenerateChallenge(userId, newSensorId, newChallenge)
- whenever(
- lockPatternUtils.verifyGatekeeperPasswordHandle(
- gkPwHandle,
- newChallenge,
- userId
- )
- )
- .thenReturn(newBadCredential(0))
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run credential check
- val action = viewModel.checkCredential(this)
- runCurrent()
-
- assertThat(action).isEqualTo(CredentialAction.IS_GENERATING_CHALLENGE)
- assertThat(generateFails.size).isEqualTo(1)
- assertThat(generateFails[0]).isEqualTo(true)
- assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
-
- // Check createGeneratingChallengeExtras()
- assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
- }
- }
-
- @Test
- fun testGetUserId_fromIntent() {
- val userId = 106
- viewModel = newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
-
- // Get userId
- assertThat(viewModel.userId).isEqualTo(userId)
- }
-
- @Test
- fun testGenerateChallengeAsCredentialActivityResult_invalidChooseLock() = runTest {
- backgroundScope.launch {
- val userId = 107
- val gkPwHandle = 3333L
- viewModel =
- newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
- val intent = Intent()
- intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run generateChallengeAsCredentialActivityResult()
- val ret = viewModel.generateChallengeAsCredentialActivityResult(
- true,
- ActivityResult(ChooseLockPattern.RESULT_FINISHED + 1, intent),
- backgroundScope
- )
- runCurrent()
-
- assertThat(ret).isFalse()
- assertThat(generateFails.size).isEqualTo(0)
- }
- }
-
- @Test
- fun testGenerateChallengeAsCredentialActivityResult_invalidConfirmLock() = runTest {
- backgroundScope.launch {
- val userId = 107
- val gkPwHandle = 3333L
- viewModel =
- newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
- val intent = Intent()
- intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run generateChallengeAsCredentialActivityResult()
- val ret = viewModel.generateChallengeAsCredentialActivityResult(
- false,
- ActivityResult(Activity.RESULT_OK + 1, intent),
- backgroundScope
- )
- runCurrent()
-
- assertThat(ret).isFalse()
- assertThat(generateFails.size).isEqualTo(0)
- }
- }
-
- @Test
- fun testGenerateChallengeAsCredentialActivityResult_nullDataChooseLock() = runTest {
- val userId = 108
- val gkPwHandle = 4444L
- viewModel =
- newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run generateChallengeAsCredentialActivityResult()
- val ret = viewModel.generateChallengeAsCredentialActivityResult(
- true,
- ActivityResult(ChooseLockPattern.RESULT_FINISHED, null),
- backgroundScope
- )
- runCurrent()
-
- assertThat(ret).isFalse()
- assertThat(generateFails.size).isEqualTo(0)
- }
-
- @Test
- fun testGenerateChallengeAsCredentialActivityResult_nullDataConfirmLock() = runTest {
- val userId = 109
- viewModel =
- newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run generateChallengeAsCredentialActivityResult()
- val ret = viewModel.generateChallengeAsCredentialActivityResult(
- false,
- ActivityResult(Activity.RESULT_OK, null),
- backgroundScope
- )
- runCurrent()
-
- assertThat(ret).isFalse()
- assertThat(generateFails.size).isEqualTo(0)
- }
-
- @Test
- fun testGenerateChallengeAsCredentialActivityResult_validChooseLock() = runTest {
- val userId = 108
- viewModel =
- newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
- whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
- DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
- )
- val gkPwHandle = 6666L
- val newSensorId = 50
- val newChallenge = 60L
- setupGenerateChallenge(userId, newSensorId, newChallenge)
- whenever(
- lockPatternUtils.verifyGatekeeperPasswordHandle(
- gkPwHandle,
- newChallenge,
- userId
- )
- )
- .thenReturn(newGoodCredential(gkPwHandle, byteArrayOf(1)))
- val hasCalledRemoveGkPwHandle = AtomicBoolean()
- Mockito.doAnswer {
- hasCalledRemoveGkPwHandle.set(true)
- null
- }.`when`(lockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle)
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run generateChallengeAsCredentialActivityResult()
- val intent =
- Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
- val ret = viewModel.generateChallengeAsCredentialActivityResult(
- true,
- ActivityResult(ChooseLockPattern.RESULT_FINISHED, intent),
- backgroundScope
- )
- runCurrent()
-
- assertThat(ret).isTrue()
- assertThat(generateFails.size).isEqualTo(0)
- assertThat(viewModel.token).isNotNull()
- assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
- assertThat(hasCalledRemoveGkPwHandle.get()).isTrue()
- }
-
- @Test
- fun testGenerateChallengeAsCredentialActivityResult_validConfirmLock() = runTest {
- val userId = 109
- viewModel =
- newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
- whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
- DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
- )
- val gkPwHandle = 5555L
- val newSensorId = 80
- val newChallenge = 90L
- setupGenerateChallenge(userId, newSensorId, newChallenge)
- whenever(
- lockPatternUtils.verifyGatekeeperPasswordHandle(
- gkPwHandle,
- newChallenge,
- userId
- )
- )
- .thenReturn(newGoodCredential(gkPwHandle, byteArrayOf(1)))
- val hasCalledRemoveGkPwHandle = AtomicBoolean()
- Mockito.doAnswer {
- hasCalledRemoveGkPwHandle.set(true)
- null
- }.`when`(lockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle)
-
- val generateFails = listOfGenerateChallengeFailedFlow()
-
- // Run generateChallengeAsCredentialActivityResult()
- val intent =
- Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
- val ret = viewModel.generateChallengeAsCredentialActivityResult(
- false,
- ActivityResult(Activity.RESULT_OK, intent),
- backgroundScope
- )
- runCurrent()
-
- assertThat(ret).isTrue()
- assertThat(generateFails.size).isEqualTo(0)
- assertThat(viewModel.token).isNotNull()
- assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
- assertThat(hasCalledRemoveGkPwHandle.get()).isTrue()
- }
-
- private fun TestScope.listOfGenerateChallengeFailedFlow(): List<Boolean> =
- mutableListOf<Boolean>().also {
- backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
- viewModel.generateChallengeFailedFlow.toList(it)
- }
- }
-
- class TestChallengeGenerator : ChallengeGenerator {
- var sensorId = -1
- var userId = UserHandle.myUserId()
- var challenge = CredentialModel.INVALID_CHALLENGE
- var callbackRunCount = 0
-
- override var callback: AutoCredentialViewModel.GenerateChallengeCallback? = null
-
- override fun generateChallenge(userId: Int) {
- callback?.let {
- it.onChallengeGenerated(sensorId, this.userId, challenge)
- ++callbackRunCount
- }
- }
- }
-
- private fun newGoodCredential(gkPwHandle: Long, hat: ByteArray): VerifyCredentialResponse {
- return VerifyCredentialResponse.Builder()
- .setGatekeeperPasswordHandle(gkPwHandle)
- .setGatekeeperHAT(hat)
- .build()
- }
-
- private fun newBadCredential(timeout: Int): VerifyCredentialResponse {
- return if (timeout > 0) {
- VerifyCredentialResponse.fromTimeout(timeout)
- } else {
- VerifyCredentialResponse.fromError()
- }
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModelTest.java
deleted file mode 100644
index c4ee18e..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModelTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Application;
-import android.content.res.Configuration;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.InstantTaskExecutorRule;
-import com.android.systemui.unfold.compat.ScreenSizeFoldProvider;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class DeviceFoldedViewModelTest {
-
- @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
- private DeviceFoldedViewModel mViewModel;
-
- @Before
- public void setUp() {
- final Application application = ApplicationProvider.getApplicationContext();
- mViewModel = new DeviceFoldedViewModel(new ScreenSizeFoldProvider(application),
- application.getMainExecutor());
- }
-
- @Test
- public void testLiveData() {
- final Configuration config1 = new Configuration();
- config1.smallestScreenWidthDp = 601;
- mViewModel.onConfigurationChanged(config1);
- assertThat(mViewModel.getLiveData().getValue()).isFalse();
-
- final Configuration config2 = new Configuration();
- config2.smallestScreenWidthDp = 599;
- mViewModel.onConfigurationChanged(config2);
- assertThat(mViewModel.getLiveData().getValue()).isTrue();
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModelTest.java
deleted file mode 100644
index 0b7c53c..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModelTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Application;
-import android.view.Surface;
-
-import androidx.annotation.NonNull;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class DeviceRotationViewModelTest {
-
- @Rule public final MockitoRule mockito = MockitoJUnit.rule();
- @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
- private TestDeviceRotationViewModel mViewModel;
-
- @Before
- public void setUp() {
- TestDeviceRotationViewModel.sTestRotation = 3;
- mViewModel = new TestDeviceRotationViewModel(ApplicationProvider.getApplicationContext());
- }
-
- @Test
- public void testDefaultLiveDataNotNull() {
- assertThat(mViewModel.getLiveData().getValue()).isEqualTo(mViewModel.sTestRotation);
- }
-
- @Test
- public void testOnDisplayChange() {
- mViewModel.sTestRotation = 3;
- mViewModel.triggerOnDisplayChanged();
- assertThat(mViewModel.getLiveData().getValue()).isEqualTo(mViewModel.sTestRotation);
- }
-
- public static class TestDeviceRotationViewModel extends DeviceRotationViewModel {
-
- @Surface.Rotation static int sTestRotation = 0;
-
- public TestDeviceRotationViewModel(@NonNull Application application) {
- super(application);
- }
-
- void triggerOnDisplayChanged() {
- mDisplayListener.onDisplayChanged(0);
- }
-
- @Override
- protected int getRotation() {
- return sTestRotation;
- }
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
deleted file mode 100644
index d4fae60..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
-
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-
-import android.app.Application;
-import android.hardware.biometrics.SensorProperties;
-import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
-
-import androidx.lifecycle.LiveData;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-import java.util.ArrayList;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollEnrollingViewModelTest {
-
- private static final int TEST_USER_ID = 33;
-
- @Rule
- public final MockitoRule mockito = MockitoJUnit.rule();
- @Rule
- public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
- @Mock
- private FingerprintManager mFingerprintManager;
-
- private Application mApplication;
- private FingerprintEnrollEnrollingViewModel mViewModel;
-
- @Before
- public void setUp() {
- mApplication = ApplicationProvider.getApplicationContext();
- mViewModel = new FingerprintEnrollEnrollingViewModel(
- mApplication,
- TEST_USER_ID,
- newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5)
- );
- }
-
- @Test
- public void testIconTouchDialog() {
- final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
- assertThat(actionLiveData.getValue()).isEqualTo(null);
-
- mViewModel.showIconTouchDialog();
- assertThat(actionLiveData.getValue()).isEqualTo(
- FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG);
- }
-
- @Test
- public void tesBackPressedScenario() {
- final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
- assertThat(actionLiveData.getValue()).isEqualTo(null);
- assertThat(mViewModel.getOnBackPressed()).isEqualTo(false);
-
- mViewModel.setOnBackPressed();
- assertThat(mViewModel.getOnBackPressed()).isEqualTo(true);
-
- mViewModel.onCancelledDueToOnBackPressed();
- assertThat(mViewModel.getOnBackPressed()).isEqualTo(false);
- assertThat(actionLiveData.getValue()).isEqualTo(
- FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED);
- }
-
- @Test
- public void testSkipPressedScenario() {
- final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
- assertThat(actionLiveData.getValue()).isEqualTo(null);
- assertThat(mViewModel.getOnSkipPressed()).isEqualTo(false);
-
- mViewModel.setOnSkipPressed();
- assertThat(mViewModel.getOnSkipPressed()).isEqualTo(true);
-
- mViewModel.onCancelledDueToOnSkipPressed();
- assertThat(mViewModel.getOnSkipPressed()).isEqualTo(false);
- assertThat(actionLiveData.getValue()).isEqualTo(
- FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP);
- }
-
- @Test
- public void testGetFirstFingerprintSensorPropertiesInternal() {
- final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
- final FingerprintSensorPropertiesInternal prop = new FingerprintSensorPropertiesInternal(
- 0 /* sensorId */,
- SensorProperties.STRENGTH_STRONG,
- 5,
- new ArrayList<>() /* componentInfo */,
- TYPE_UDFPS_OPTICAL,
- true /* resetLockoutRequiresHardwareAuthToken */);
- props.add(prop);
- doAnswer(invocation -> {
- final IFingerprintAuthenticatorsRegisteredCallback callback =
- invocation.getArgument(0);
- callback.onAllAuthenticatorsRegistered(props);
- return null;
- }).when(mFingerprintManager).addAuthenticatorsRegisteredCallback(any());
-
- mViewModel = new FingerprintEnrollEnrollingViewModel(
- mApplication,
- TEST_USER_ID,
- new FingerprintRepository(mFingerprintManager)
- );
-
- assertThat(mViewModel.getFirstFingerprintSensorPropertiesInternal()).isEqualTo(prop);
- }
-
- @Test
- public void testGetEnrollStageCount() {
- final int expectedValue = 24;
- doReturn(expectedValue).when(mFingerprintManager).getEnrollStageCount();
-
- assertThat(mViewModel.getEnrollStageCount()).isEqualTo(expectedValue);
- }
-
- @Test
- public void testGetEnrollStageThreshold() {
- final float expectedValue0 = 0.42f;
- final float expectedValue1 = 0.24f;
- final float expectedValue2 = 0.33f;
- final float expectedValue3 = 0.90f;
-
- doReturn(expectedValue0).when(mFingerprintManager).getEnrollStageThreshold(0);
- doReturn(expectedValue1).when(mFingerprintManager).getEnrollStageThreshold(1);
- doReturn(expectedValue2).when(mFingerprintManager).getEnrollStageThreshold(2);
- doReturn(expectedValue3).when(mFingerprintManager).getEnrollStageThreshold(3);
-
- assertThat(mViewModel.getEnrollStageThreshold(2)).isEqualTo(expectedValue2);
- assertThat(mViewModel.getEnrollStageThreshold(1)).isEqualTo(expectedValue1);
- assertThat(mViewModel.getEnrollStageThreshold(3)).isEqualTo(expectedValue3);
- assertThat(mViewModel.getEnrollStageThreshold(0)).isEqualTo(expectedValue0);
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModelTest.kt
deleted file mode 100644
index 379a5c1..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModelTest.kt
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.viewmodel
-
-import android.app.Application
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
-import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.UnconfinedTestDispatcher
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
-import org.junit.Before
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@RunWith(AndroidJUnit4::class)
-class FingerprintEnrollErrorDialogViewModelTest {
-
- private val application = ApplicationProvider.getApplicationContext<Application>()
- private var viewModel: FingerprintEnrollErrorDialogViewModel =
- FingerprintEnrollErrorDialogViewModel(application, false)
-
- @Before
- fun setUp() {
- // Make sure viewModel is new for each test
- viewModel = FingerprintEnrollErrorDialogViewModel(application, false)
- }
-
- @Test
- fun testIsDialogNotShownDefaultFalse() {
- assertThat(viewModel.isDialogShown).isFalse()
- }
-
- @Test
- fun testIsSuw() {
- assertThat(FingerprintEnrollErrorDialogViewModel(application, false).isSuw).isFalse()
- assertThat(FingerprintEnrollErrorDialogViewModel(application, true).isSuw).isTrue()
- }
-
- @Test
- fun testNewDialog() = runTest {
- val newDialogs: List<Int> = mutableListOf<Int>().also {
- backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
- viewModel.newDialogFlow.toList(it)
- }
- }
-
- runCurrent()
-
- // Default values
- assertThat(viewModel.isDialogShown).isFalse()
- assertThat(newDialogs.size).isEqualTo(0)
-
- val testErrorMsgId = 3456
- viewModel.newDialog(testErrorMsgId)
- runCurrent()
-
- // verify after emit
- assertThat(viewModel.isDialogShown).isTrue()
- assertThat(newDialogs.size).isEqualTo(1)
- assertThat(newDialogs[0]).isEqualTo(testErrorMsgId)
- }
-
- @Test
- fun testTriggerRetry() = runTest {
- val triggerRetries: List<Any> = mutableListOf<Any>().also {
- backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
- viewModel.triggerRetryFlow.toList(it)
- }
- }
-
- runCurrent()
-
- // Default values
- assertThat(triggerRetries.size).isEqualTo(0)
-
- viewModel.triggerRetry()
- runCurrent()
-
- // verify after emit
- assertThat(triggerRetries.size).isEqualTo(1)
- }
-
- @Test
- fun testSetResultFinish() = runTest {
- val setResults: List<FingerprintErrorDialogSetResultAction> =
- mutableListOf<FingerprintErrorDialogSetResultAction>().also {
- backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
- viewModel.setResultFlow.toList(it)
- }
- }
-
- runCurrent()
-
- // Default values
- assertThat(setResults.size).isEqualTo(0)
-
- viewModel.setResultAndFinish(FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH)
- runCurrent()
-
- // verify after emit
- assertThat(setResults.size).isEqualTo(1)
- assertThat(setResults[0]).isEqualTo(FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH)
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModelTest.java
deleted file mode 100644
index 18bd61a..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModelTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Application;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollFindSensorViewModelTest {
-
- @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
- private Application mApplication;
- private FingerprintEnrollFindSensorViewModel mViewModel;
-
- @Before
- public void setUp() {
- mApplication = ApplicationProvider.getApplicationContext();
- mViewModel = new FingerprintEnrollFindSensorViewModel(mApplication, false);
- }
-
- @Test
- public void testClickSkipButtonNotInSuw() {
- mViewModel = new FingerprintEnrollFindSensorViewModel(mApplication, false);
- mViewModel.onSkipButtonClick();
- assertThat(mViewModel.getActionLiveData().getValue()).isEqualTo(
- FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP);
- }
-
- @Test
- public void testClickSkipButtonInSuw() {
- mViewModel = new FingerprintEnrollFindSensorViewModel(mApplication, true);
- mViewModel.onSkipButtonClick();
- assertThat(mViewModel.getActionLiveData().getValue()).isEqualTo(
- FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG);
- }
-
- @Test
- public void testClickSkipDialogButton() {
- mViewModel.onSkipDialogButtonClick();
- assertThat(mViewModel.getActionLiveData().getValue()).isEqualTo(
- FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP);
- }
-
- @Test
- public void testClickStartDialogButton() {
- mViewModel.onStartButtonClick();
- assertThat(mViewModel.getActionLiveData().getValue()).isEqualTo(
- FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START);
- }
-
- @Test
- public void testClearActionLiveData() {
- assertThat(mViewModel.getActionLiveData().getValue()).isNull();
-
- mViewModel.onStartButtonClick();
- assertThat(mViewModel.getActionLiveData().getValue()).isNotNull();
-
- mViewModel.clearActionLiveData();
- assertThat(mViewModel.getActionLiveData().getValue()).isNull();
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModelTest.java
deleted file mode 100644
index ac97e72..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModelTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_REAR;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
-
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Application;
-import android.content.Intent;
-import android.hardware.fingerprint.FingerprintManager;
-
-import androidx.lifecycle.LiveData;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollFinishViewModelTest {
-
- private static final int USER_ID = 334;
- private static final int MAX_ENROLLABLE = 5;
-
- @Rule public final MockitoRule mockito = MockitoJUnit.rule();
- @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
- @Mock private FingerprintManager mFingerprintManager;
-
- private Application mApplication;
- private EnrollmentRequest mRequest;
- private FingerprintEnrollFinishViewModel mViewModel;
-
- @Before
- public void setUp() {
- mApplication = ApplicationProvider.getApplicationContext();
- mRequest = new EnrollmentRequest(new Intent(), mApplication, true);
- mViewModel = new FingerprintEnrollFinishViewModel(mApplication, USER_ID, mRequest,
- newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, MAX_ENROLLABLE));
- }
-
- @Test
- public void testCanAssumeSfps() {
- mViewModel = new FingerprintEnrollFinishViewModel(mApplication, USER_ID, mRequest,
- newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, MAX_ENROLLABLE));
- assertThat(mViewModel.canAssumeSfps()).isFalse();
-
- mViewModel = new FingerprintEnrollFinishViewModel(mApplication, USER_ID, mRequest,
- newFingerprintRepository(mFingerprintManager, TYPE_REAR, MAX_ENROLLABLE));
- assertThat(mViewModel.canAssumeSfps()).isFalse();
-
- mViewModel = new FingerprintEnrollFinishViewModel(mApplication, USER_ID, mRequest,
- newFingerprintRepository(mFingerprintManager, TYPE_POWER_BUTTON, MAX_ENROLLABLE));
- assertThat(mViewModel.canAssumeSfps()).isTrue();
- }
-
- @Test
- public void testIsAnotherFingerprintEnrollable() {
- setupFingerprintEnrolledFingerprints(mFingerprintManager, USER_ID, MAX_ENROLLABLE);
- assertThat(mViewModel.isAnotherFingerprintEnrollable()).isFalse();
-
- setupFingerprintEnrolledFingerprints(mFingerprintManager, USER_ID, MAX_ENROLLABLE - 1);
- assertThat(mViewModel.isAnotherFingerprintEnrollable()).isTrue();
- }
-
- @Test
- public void testGetRequest() {
- assertThat(mViewModel.getRequest()).isEqualTo(mRequest);
- }
-
- @Test
- public void testOnAddButtonClick() {
- final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
-
- // Test init value
- assertThat(actionLiveData.getValue()).isNull();
-
- // Test onAddButtonClick()
- mViewModel.onAddButtonClick();
- assertThat(actionLiveData.getValue()).isEqualTo(
- FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK);
-
- // Clear
- mViewModel.clearActionLiveData();
- assertThat(actionLiveData.getValue()).isNull();
- }
-
- @Test
- public void testOnNextButtonClick() {
- final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
-
- // Test init value
- assertThat(actionLiveData.getValue()).isNull();
-
- // Test onNextButtonClick()
- mViewModel.onNextButtonClick();
- assertThat(actionLiveData.getValue()).isEqualTo(
- FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK);
-
- // Clear
- mViewModel.clearActionLiveData();
- assertThat(actionLiveData.getValue()).isNull();
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.kt
deleted file mode 100644
index 7494aef..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.kt
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.viewmodel
-
-import android.app.Application
-import android.content.res.Resources
-import android.hardware.fingerprint.FingerprintManager
-import android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.biometrics2.data.repository.FingerprintRepository
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.CONTINUE_ENROLL
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.DONE_AND_FINISH
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.SKIP_OR_CANCEL
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newAllFalseRequest
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwDeferredRequest
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwPortalRequest
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwRequest
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwSuggestedActionFlowRequest
-import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository
-import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints
-import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupSuwMaxFingerprintsEnrollable
-import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.UnconfinedTestDispatcher
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.Mockito
-import org.mockito.junit.MockitoJUnit
-
-@RunWith(AndroidJUnit4::class)
-class FingerprintEnrollIntroViewModelTest {
-
- @get:Rule val mockito = MockitoJUnit.rule()
-
- @Mock private lateinit var resources: Resources
- @Mock private lateinit var fingerprintManager: FingerprintManager
-
- private var application: Application = ApplicationProvider.getApplicationContext()
-
- private fun newFingerprintEnrollIntroViewModel(
- fingerprintRepository: FingerprintRepository,
- enrollmentRequest: EnrollmentRequest
- ) = FingerprintEnrollIntroViewModel(
- application,
- fingerprintRepository,
- enrollmentRequest,
- TEST_USER_ID
- )
-
- @Before
- fun setUp() {
- application = ApplicationProvider.getApplicationContext()
- }
-
- @Test
- fun testPageStatusFlowDefaultAndUpdate() = runTest {
- val viewModel = newFingerprintEnrollIntroViewModel(
- newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 1),
- newAllFalseRequest(application)
- )
-
- val statusList = listOfPageStatusFlow(viewModel)
-
- runCurrent()
-
- // assert default values
- assertThat(statusList.size).isEqualTo(1)
- assertThat(statusList[0].hasScrollToBottom()).isFalse()
- assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_OK)
-
- setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 1)
- viewModel.updateEnrollableStatus(backgroundScope)
- runCurrent()
-
- // assert new updated value
- assertThat(statusList.size).isEqualTo(2)
- assertThat(statusList[1].hasScrollToBottom()).isFalse()
- assertThat(statusList[1].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
- }
-
- fun testOnStartToUpdateEnrollableStatusOk_isSuw() = runTest {
- setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 0)
- setupSuwMaxFingerprintsEnrollable(application, resources, 1)
- val viewModel = newFingerprintEnrollIntroViewModel(
- newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
- newIsSuwRequest(application)
- )
-
- val statusList = listOfPageStatusFlow(viewModel)
-
- runCurrent()
-
- assertThat(statusList.size).isEqualTo(1)
- assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_OK)
- }
-
- @Test
- fun testOnStartToUpdateEnrollableStatusReachMax_isSuw() = runTest {
- setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 1)
- setupSuwMaxFingerprintsEnrollable(application, resources, 1)
- val viewModel = newFingerprintEnrollIntroViewModel(
- newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
- newIsSuwRequest(application)
- )
-
- val statusList = listOfPageStatusFlow(viewModel)
-
- runCurrent()
-
- assertThat(statusList.size).isEqualTo(1)
- assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
- }
-
- @Test
- fun testOnStartToUpdateEnrollableStatusOk_isNotSuw() = runTest {
- testOnStartToUpdateEnrollableStatusOk(newAllFalseRequest(application))
- }
-
- @Test
- fun testOnStartToUpdateEnrollableStatusReachMax_isNotSuw() = runTest {
- testOnStartToUpdateEnrollableStatusReachMax(newAllFalseRequest(application))
- }
-
- @Test
- fun testOnStartToUpdateEnrollableStatusOk_isSuwDeferred() = runTest {
- testOnStartToUpdateEnrollableStatusOk(newIsSuwDeferredRequest(application))
- }
-
- @Test
- fun testOnStartToUpdateEnrollableStatusReachMax_isSuwDeferred() = runTest {
- testOnStartToUpdateEnrollableStatusReachMax(newIsSuwDeferredRequest(application))
- }
-
- @Test
- fun testOnStartToUpdateEnrollableStatusOk_isSuwPortal() = runTest {
- testOnStartToUpdateEnrollableStatusOk(newIsSuwPortalRequest(application))
- }
-
- @Test
- fun testOnStartToUpdateEnrollableStatusReachMax_isSuwPortal() = runTest {
- testOnStartToUpdateEnrollableStatusReachMax(newIsSuwPortalRequest(application))
- }
-
- @Test
- fun testOnStartToUpdateEnrollableStatusOk_isSuwSuggestedActionFlow() = runTest {
- testOnStartToUpdateEnrollableStatusOk(newIsSuwSuggestedActionFlowRequest(application))
- }
-
- @Test
- fun testOnStartToUpdateEnrollableStatusReachMax_isSuwSuggestedActionFlow() = runTest {
- testOnStartToUpdateEnrollableStatusReachMax(
- newIsSuwSuggestedActionFlowRequest(application)
- )
- }
-
- private fun TestScope.testOnStartToUpdateEnrollableStatusOk(request: EnrollmentRequest) {
- setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 0)
- val viewModel = newFingerprintEnrollIntroViewModel(
- newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
- request
- )
-
- val statusList = listOfPageStatusFlow(viewModel)
-
- runCurrent()
-
- assertThat(statusList.size).isEqualTo(1)
- assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_OK)
- }
-
- private fun TestScope.testOnStartToUpdateEnrollableStatusReachMax(request: EnrollmentRequest) {
- setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 5)
- val viewModel = newFingerprintEnrollIntroViewModel(
- newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
- request
- )
-
- val statusList = listOfPageStatusFlow(viewModel)
-
- runCurrent()
-
- assertThat(statusList.size).isEqualTo(1)
- assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
- }
-
- @Test
- fun testIsParentalConsentRequired() {
- // We shall not mock FingerprintRepository, but
- // FingerprintRepository.isParentalConsentRequired() calls static method inside, we can't
- // mock static method
- val fingerprintRepository = Mockito.mock(
- FingerprintRepository::class.java
- )
- val viewModel = FingerprintEnrollIntroViewModel(
- application,
- fingerprintRepository,
- newAllFalseRequest(application),
- TEST_USER_ID
- )
- Mockito.`when`(
- fingerprintRepository.isParentalConsentRequired(application)
- ).thenReturn(true)
- assertThat(viewModel.isParentalConsentRequired).isEqualTo(true)
- Mockito.`when`(
- fingerprintRepository.isParentalConsentRequired(application)
- ).thenReturn(false)
- assertThat(viewModel.isParentalConsentRequired).isEqualTo(false)
- }
-
- @Test
- fun testIsBiometricUnlockDisabledByAdmin() {
- // We shall not mock FingerprintRepository, but
- // FingerprintRepository.isDisabledByAdmin() calls static method inside, we can't mock
- // static method
- val fingerprintRepository = Mockito.mock(FingerprintRepository::class.java)
- val viewModel = FingerprintEnrollIntroViewModel(
- application,
- fingerprintRepository,
- newAllFalseRequest(application),
- TEST_USER_ID
- )
- Mockito.`when`(
- fingerprintRepository.isDisabledByAdmin(application, TEST_USER_ID)
- ).thenReturn(true)
- assertThat(viewModel.isBiometricUnlockDisabledByAdmin).isEqualTo(true)
- Mockito.`when`(
- fingerprintRepository.isDisabledByAdmin(application, TEST_USER_ID)
- ).thenReturn(false)
- assertThat(viewModel.isBiometricUnlockDisabledByAdmin).isEqualTo(false)
- }
-
- @Test
- fun testSetHasScrolledToBottom() = runTest {
- val viewModel = newFingerprintEnrollIntroViewModel(
- newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
- newAllFalseRequest(application)
- )
-
- val pageStatusList = listOfPageStatusFlow(viewModel)
-
- viewModel.setHasScrolledToBottom(true, backgroundScope)
- runCurrent()
-
- assertThat(pageStatusList[pageStatusList.size-1].hasScrollToBottom()).isEqualTo(true)
- }
-
- @Test
- fun testOnNextButtonClick_enrollNext() = runTest {
- // Set latest status to FINGERPRINT_ENROLLABLE_OK
- setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 0)
- setupSuwMaxFingerprintsEnrollable(application, resources, 1)
- val viewModel = newFingerprintEnrollIntroViewModel(
- newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
- newIsSuwRequest(application)
- )
-
- val actions = listOfActionFlow(viewModel)
-
- // Perform click on `next`
- viewModel.onNextButtonClick(backgroundScope)
- runCurrent()
-
- assertThat(actions.size).isEqualTo(1)
- assertThat(actions[0]).isEqualTo(CONTINUE_ENROLL)
- }
-
- @Test
- fun testOnNextButtonClick_doneAndFinish() = runTest {
- // Set latest status to FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
- setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 1)
- setupSuwMaxFingerprintsEnrollable(application, resources, 1)
- val viewModel = newFingerprintEnrollIntroViewModel(
- newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
- newIsSuwRequest(application)
- )
-
- val statusList = listOfPageStatusFlow(viewModel)
- val actionList = listOfActionFlow(viewModel)
-
- runCurrent()
-
- assertThat(statusList.size).isEqualTo(1)
- assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
-
- val actions = listOfActionFlow(viewModel)
-
- // Perform click on `next`
- viewModel.onNextButtonClick(backgroundScope)
- runCurrent()
-
- assertThat(actionList.size).isEqualTo(1)
- assertThat(actionList[0]).isEqualTo(DONE_AND_FINISH)
- }
-
- @Test
- fun testOnSkipOrCancelButtonClick() = runTest {
- val viewModel = newFingerprintEnrollIntroViewModel(
- newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
- newAllFalseRequest(application)
- )
-
- val actions = listOfActionFlow(viewModel)
-
- viewModel.onSkipOrCancelButtonClick(backgroundScope)
- runCurrent()
-
- assertThat(actions.size).isEqualTo(1)
- assertThat(actions[0]).isEqualTo(SKIP_OR_CANCEL)
- }
-
- private fun TestScope.listOfActionFlow(
- viewModel: FingerprintEnrollIntroViewModel
- ): List<FingerprintEnrollIntroAction> =
- mutableListOf<FingerprintEnrollIntroAction>().also {
- backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
- viewModel.actionFlow.toList(it)
- }
- }
-
- private fun TestScope.listOfPageStatusFlow(
- viewModel: FingerprintEnrollIntroViewModel
- ): List<FingerprintEnrollIntroStatus> =
- mutableListOf<FingerprintEnrollIntroStatus>().also {
- backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
- viewModel.pageStatusFlow.toList(it)
- }
- }
-
- companion object {
- private const val TEST_USER_ID = 33
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModelTest.java
deleted file mode 100644
index 2c7afa6..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModelTest.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL;
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_FIND_SENSOR;
-import static android.hardware.fingerprint.FingerprintManager.EnrollReason;
-import static android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
-
-import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.only;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.Application;
-import android.content.res.Resources;
-import android.os.CancellationSignal;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.LiveData;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.biometrics.fingerprint.FingerprintUpdater;
-import com.android.settings.biometrics.fingerprint.MessageDisplayController;
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress;
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage;
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollProgressViewModelTest {
-
- private static final int TEST_USER_ID = 334;
-
- @Rule public final MockitoRule mockito = MockitoJUnit.rule();
- @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
- @Mock private Application mApplication;
- @Mock private Resources mResources;
- @Mock private FingerprintUpdater mFingerprintUpdater;
-
- private FingerprintEnrollProgressViewModel mViewModel;
- private final TestWrapper<CancellationSignal> mCancellationSignalWrapper = new TestWrapper<>();
- private final TestWrapper<EnrollmentCallback> mCallbackWrapper = new TestWrapper<>();
- private int mEnrollmentMessageDisplayControllerFlagResId;
-
- @Before
- public void setUp() {
- mEnrollmentMessageDisplayControllerFlagResId = ApplicationProvider.getApplicationContext()
- .getResources().getIdentifier("enrollment_message_display_controller_flag", "bool",
- SETTINGS_PACKAGE_NAME);
-
- when(mApplication.getResources()).thenReturn(mResources);
-
- // Not use MessageDisplayController by default
- when(mResources.getBoolean(mEnrollmentMessageDisplayControllerFlagResId)).thenReturn(false);
- mViewModel = new FingerprintEnrollProgressViewModel(mApplication, mFingerprintUpdater,
- TEST_USER_ID);
-
- mCancellationSignalWrapper.mValue = null;
- mCallbackWrapper.mValue = null;
- doAnswer(invocation -> {
- mCancellationSignalWrapper.mValue = invocation.getArgument(1);
- mCallbackWrapper.mValue = invocation.getArgument(3);
- return null;
- }).when(mFingerprintUpdater).enroll(any(byte[].class), any(CancellationSignal.class),
- eq(TEST_USER_ID), any(EnrollmentCallback.class), anyInt(), any());
- }
-
- @Test
- public void testStartFindSensor() {
- @EnrollReason final int enrollReason = ENROLL_FIND_SENSOR;
- final byte[] token = new byte[] { 1, 2, 3 };
- mViewModel.setToken(token);
-
- // Start enrollment
- final Object ret = mViewModel.startEnrollment(enrollReason);
-
- assertThat(ret).isNotNull();
- verify(mFingerprintUpdater, only()).enroll(eq(token), any(CancellationSignal.class),
- eq(TEST_USER_ID), any(EnrollmentCallback.class), eq(enrollReason), any());
- assertThat(mCallbackWrapper.mValue instanceof MessageDisplayController).isFalse();
- }
-
- @Test
- public void testStartEnrolling() {
- @EnrollReason final int enrollReason = ENROLL_ENROLL;
- final byte[] token = new byte[] { 1, 2, 3 };
- mViewModel.setToken(token);
-
- // Start enrollment
- final Object ret = mViewModel.startEnrollment(enrollReason);
-
- assertThat(ret).isNotNull();
- verify(mFingerprintUpdater, only()).enroll(eq(token), any(CancellationSignal.class),
- eq(TEST_USER_ID), any(EnrollmentCallback.class), eq(enrollReason), any());
- assertThat(mCallbackWrapper.mValue instanceof MessageDisplayController).isFalse();
- }
-
- @Test
- public void testStartEnrollingWithMessageDisplayController() {
- // Enable MessageDisplayController and mock handler for it
- when(mResources.getBoolean(mEnrollmentMessageDisplayControllerFlagResId)).thenReturn(true);
- when(mApplication.getMainThreadHandler()).thenReturn(new TestHandler());
-
- @EnrollReason final int enrollReason = ENROLL_ENROLL;
- final byte[] token = new byte[] { 1, 2, 3 };
- mViewModel.setToken(token);
-
- // Start enrollment
- final Object ret = mViewModel.startEnrollment(enrollReason);
-
- assertThat(ret).isNotNull();
- verify(mFingerprintUpdater, only()).enroll(eq(token), any(CancellationSignal.class),
- eq(TEST_USER_ID), any(MessageDisplayController.class), eq(enrollReason), any());
- assertThat(mCallbackWrapper.mValue).isNotNull();
-
- assertThat(mCallbackWrapper.mValue instanceof MessageDisplayController).isTrue();
- final EnrollmentCallback callback1 = mCallbackWrapper.mValue;
-
- // Cancel and start again
- mViewModel.cancelEnrollment();
- mViewModel.startEnrollment(enrollReason);
-
- // Shall not use the same MessageDisplayController
- verify(mFingerprintUpdater, times(2)).enroll(eq(token), any(CancellationSignal.class),
- eq(TEST_USER_ID), any(MessageDisplayController.class), eq(enrollReason), any());
- assertThat(mCallbackWrapper.mValue).isNotNull();
- assertThat(callback1).isNotEqualTo(mCallbackWrapper.mValue);
- }
-
- @Test
- public void testStartEnrollmentFailBecauseOfNoToken() {
- // Start enrollment
- final Object ret = mViewModel.startEnrollment(ENROLL_FIND_SENSOR);
-
- assertThat(ret).isNull();
- verify(mFingerprintUpdater, never()).enroll(any(byte[].class),
- any(CancellationSignal.class), anyInt(), any(EnrollmentCallback.class), anyInt(),
- any());
- }
-
- @Test
- public void testCancelEnrollment() {
- // Start enrollment
- mViewModel.setToken(new byte[] { 1, 2, 3 });
- final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
- assertThat(ret).isNotNull();
- assertThat(mCancellationSignalWrapper.mValue).isNotNull();
-
- // Cancel enrollment
- mViewModel.cancelEnrollment();
-
- assertThat(mCancellationSignalWrapper.mValue.isCanceled()).isTrue();
- }
-
- @Test
- public void testProgressUpdate() {
- // Start enrollment
- mViewModel.setToken(new byte[] { 1, 2, 3 });
- final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
- assertThat(ret).isNotNull();
- assertThat(mCallbackWrapper.mValue).isNotNull();
-
- // Test default value
- final LiveData<EnrollmentProgress> progressLiveData = mViewModel.getProgressLiveData();
- EnrollmentProgress progress = progressLiveData.getValue();
- assertThat(progress).isNotNull();
- assertThat(progress.getSteps()).isEqualTo(-1);
- assertThat(progress.getRemaining()).isEqualTo(0);
-
- // Update first progress
- mCallbackWrapper.mValue.onEnrollmentProgress(25);
- progress = progressLiveData.getValue();
- assertThat(progress).isNotNull();
- assertThat(progress.getSteps()).isEqualTo(25);
- assertThat(progress.getRemaining()).isEqualTo(25);
-
- // Update second progress
- mCallbackWrapper.mValue.onEnrollmentProgress(20);
- progress = progressLiveData.getValue();
- assertThat(progress).isNotNull();
- assertThat(progress.getSteps()).isEqualTo(25);
- assertThat(progress.getRemaining()).isEqualTo(20);
-
- // Update latest progress
- mCallbackWrapper.mValue.onEnrollmentProgress(0);
- progress = progressLiveData.getValue();
- assertThat(progress).isNotNull();
- assertThat(progress.getSteps()).isEqualTo(25);
- assertThat(progress.getRemaining()).isEqualTo(0);
- }
-
- @Test
- public void testProgressUpdateClearHelpMessage() {
- // Start enrollment
- mViewModel.setToken(new byte[] { 1, 2, 3 });
- final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
- assertThat(ret).isNotNull();
- assertThat(mCallbackWrapper.mValue).isNotNull();
- final LiveData<EnrollmentProgress> progressLiveData = mViewModel.getProgressLiveData();
- final LiveData<EnrollmentStatusMessage> helpMsgLiveData =
- mViewModel.getHelpMessageLiveData();
-
- // Update first progress
- mCallbackWrapper.mValue.onEnrollmentProgress(25);
- EnrollmentProgress progress = progressLiveData.getValue();
- assertThat(progress).isNotNull();
- assertThat(progress.getSteps()).isEqualTo(25);
- assertThat(progress.getRemaining()).isEqualTo(25);
-
- // Update help message
- final int testHelpMsgId = 3;
- final String testHelpString = "Test Help String";
- mCallbackWrapper.mValue.onEnrollmentHelp(testHelpMsgId, testHelpString);
- final EnrollmentStatusMessage helpMsg = helpMsgLiveData.getValue();
- assertThat(helpMsg).isNotNull();
- assertThat(helpMsg.getMsgId()).isEqualTo(testHelpMsgId);
- assertThat(helpMsg.getStr().toString()).isEqualTo(testHelpString);
-
- // Update second progress
- mCallbackWrapper.mValue.onEnrollmentProgress(20);
- progress = progressLiveData.getValue();
- assertThat(progress).isNotNull();
- assertThat(progress.getSteps()).isEqualTo(25);
- assertThat(progress.getRemaining()).isEqualTo(20);
-
- // Help message shall be set to null
- assertThat(helpMsgLiveData.getValue()).isNull();
- }
-
- @Test
- public void testProgressUpdateWithMessageDisplayController() {
- // Enable MessageDisplayController and mock handler for it
- when(mResources.getBoolean(mEnrollmentMessageDisplayControllerFlagResId)).thenReturn(true);
- when(mApplication.getMainThreadHandler()).thenReturn(new TestHandler());
-
- mViewModel.setToken(new byte[] { 1, 2, 3 });
-
- // Start enrollment
- final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
- assertThat(ret).isNotNull();
- assertThat(mCallbackWrapper.mValue).isNotNull();
-
- // Test default value
- final LiveData<EnrollmentProgress> progressLiveData = mViewModel.getProgressLiveData();
- EnrollmentProgress progress = progressLiveData.getValue();
- assertThat(progress).isNotNull();
- assertThat(progress.getSteps()).isEqualTo(-1);
- assertThat(progress.getRemaining()).isEqualTo(0);
-
- // Update first progress
- mCallbackWrapper.mValue.onEnrollmentProgress(25);
- progress = progressLiveData.getValue();
- assertThat(progress).isNotNull();
- assertThat(progress.getSteps()).isEqualTo(25);
- assertThat(progress.getRemaining()).isEqualTo(25);
-
- // Update second progress
- mCallbackWrapper.mValue.onEnrollmentProgress(20);
- progress = progressLiveData.getValue();
- assertThat(progress).isNotNull();
- assertThat(progress.getSteps()).isEqualTo(25);
- assertThat(progress.getRemaining()).isEqualTo(20);
-
- // Update latest progress
- mCallbackWrapper.mValue.onEnrollmentProgress(0);
- progress = progressLiveData.getValue();
- assertThat(progress).isNotNull();
- assertThat(progress.getSteps()).isEqualTo(25);
- assertThat(progress.getRemaining()).isEqualTo(0);
- }
-
- @Test
- public void testGetErrorMessageLiveData() {
- // Start enrollment
- mViewModel.setToken(new byte[] { 1, 2, 3 });
- final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
- assertThat(ret).isNotNull();
- assertThat(mCallbackWrapper.mValue).isNotNull();
-
- // Check default value
- final LiveData<EnrollmentStatusMessage> liveData = mViewModel.getErrorMessageLiveData();
- assertThat(liveData.getValue()).isNull();
-
- // Notify error message
- final int errMsgId = 3;
- final String errMsg = "test error message";
- mCallbackWrapper.mValue.onEnrollmentError(errMsgId, errMsg);
- final EnrollmentStatusMessage value = liveData.getValue();
- assertThat(value).isNotNull();
- assertThat(value.getMsgId()).isEqualTo(errMsgId);
- assertThat(value.getStr().toString()).isEqualTo(errMsg);
- }
-
- @Test
- public void testGetHelpMessageLiveData() {
- // Start enrollment
- mViewModel.setToken(new byte[] { 1, 2, 3 });
- final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
- assertThat(ret).isNotNull();
- assertThat(mCallbackWrapper.mValue).isNotNull();
-
- // Check default value
- final LiveData<EnrollmentStatusMessage> liveData = mViewModel.getHelpMessageLiveData();
- assertThat(liveData.getValue()).isNull();
-
- // Notify help message
- final int errMsgId = 3;
- final String errMsg = "test error message";
- mCallbackWrapper.mValue.onEnrollmentHelp(errMsgId, errMsg);
- final EnrollmentStatusMessage value = liveData.getValue();
- assertThat(value).isNotNull();
- assertThat(value.getMsgId()).isEqualTo(errMsgId);
- assertThat(value.getStr().toString()).isEqualTo(errMsg);
- }
-
- @Test
- public void testGetAcquireLiveData() {
- // Start enrollment
- mViewModel.setToken(new byte[] { 1, 2, 3 });
- final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
- assertThat(ret).isNotNull();
- assertThat(mCallbackWrapper.mValue).isNotNull();
-
- // Check default value
- final LiveData<Boolean> liveData = mViewModel.getAcquireLiveData();
- assertThat(liveData.getValue()).isNull();
-
- // Notify acquire message
- mCallbackWrapper.mValue.onAcquired(true);
- assertThat(liveData.getValue()).isTrue();
- }
-
- @Test
- public void testGetPointerDownLiveData() {
- // Start enrollment
- mViewModel.setToken(new byte[] { 1, 2, 3 });
- final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
- assertThat(ret).isNotNull();
- assertThat(mCallbackWrapper.mValue).isNotNull();
-
- // Check default value
- final LiveData<Integer> liveData = mViewModel.getPointerDownLiveData();
- assertThat(liveData.getValue()).isNull();
-
- // Notify acquire message
- final int value = 33;
- mCallbackWrapper.mValue.onUdfpsPointerDown(value);
- assertThat(liveData.getValue()).isEqualTo(value);
- }
-
- @Test
- public void testGetPointerUpLiveData() {
- // Start enrollment
- mViewModel.setToken(new byte[] { 1, 2, 3 });
- final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
- assertThat(ret).isNotNull();
- assertThat(mCallbackWrapper.mValue).isNotNull();
-
- // Check default value
- final LiveData<Integer> liveData = mViewModel.getPointerUpLiveData();
- assertThat(liveData.getValue()).isNull();
-
- // Notify acquire message
- final int value = 44;
- mCallbackWrapper.mValue.onUdfpsPointerUp(value);
- assertThat(liveData.getValue()).isEqualTo(value);
- }
-
- private static class TestWrapper<T> {
- T mValue;
- }
-
- private static class TestHandler extends Handler {
-
- TestHandler() {
- super(Looper.getMainLooper());
- }
-
- @Override
- public boolean sendMessageAtTime(@NonNull Message msg, long uptimeMillis) {
- msg.getCallback().run();
- return true;
- }
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.kt
deleted file mode 100644
index 6d04f35..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.kt
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.viewmodel
-
-import android.app.Application
-import android.content.Intent
-import android.hardware.fingerprint.FingerprintManager
-import android.hardware.fingerprint.FingerprintSensorProperties
-import android.os.Bundle
-import androidx.activity.result.ActivityResult
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics2.data.repository.FingerprintRepository
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newAllFalseRequest
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwRequest
-import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository
-import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints
-import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.UnconfinedTestDispatcher
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.junit.MockitoJUnit
-import org.mockito.junit.MockitoRule
-
-@RunWith(AndroidJUnit4::class)
-class FingerprintEnrollmentViewModelTest {
-
- @get:Rule val mockito: MockitoRule = MockitoJUnit.rule()
-
- private val application: Application
- get() = ApplicationProvider.getApplicationContext()
-
- @Mock
- private lateinit var fingerprintManager: FingerprintManager
-
- private lateinit var fingerprintRepository: FingerprintRepository
- private lateinit var viewModel: FingerprintEnrollmentViewModel
-
- @Before
- fun setUp() {
- fingerprintRepository = newFingerprintRepository(
- fingerprintManager,
- FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
- 5
- )
- viewModel = FingerprintEnrollmentViewModel(
- application,
- fingerprintRepository,
- newAllFalseRequest(application)
- )
- }
-
- @Test
- fun testGetRequest() {
- assertThat(viewModel.request).isNotNull()
- }
-
- @Test
- fun testIsWaitingActivityResultDefaultFalse() {
- assertThat(viewModel.isWaitingActivityResult.value).isFalse()
- }
-
-
- @Test
- fun testOverrideActivityResult_shallKeepNullIntent_woChallengeExtra() {
- val retResult = viewModel.getOverrideActivityResult(
- ActivityResult(22, null), null
- )
- assertThat(retResult).isNotNull()
- assertThat(retResult.data).isNull()
- }
-
- @Test
- fun testOverrideActivityResult_shallKeepNullIntent_noIntent_woChallengeExtra() {
- val intent = Intent()
- val retResult = viewModel.getOverrideActivityResult(
- ActivityResult(33, intent), null
- )
- assertThat(retResult).isNotNull()
- assertThat(retResult.data).isEqualTo(intent)
- }
-
- @Test
- fun testOverrideActivityResult_shallKeepNull_woAdded_woIntent_withChallenge() {
- val extra = Bundle()
- extra.putString("test1", "test123")
-
- val retResult = viewModel.getOverrideActivityResult(
- ActivityResult(33, null), extra
- )
-
- assertThat(retResult).isNotNull()
- assertThat(retResult.data).isNull()
- }
-
- @Test
- fun testOverrideActivityResult_shallCreateNew_woIntent_withChallenge() {
- val key1 = "test1"
- val key2 = "test2"
- val extra = Bundle().apply {
- putString(key1, "test123")
- putInt(key2, 9999)
- }
-
- viewModel.isNewFingerprintAdded = true
-
- val retResult = viewModel.getOverrideActivityResult(
- ActivityResult(33, null), extra
- )
- assertThat(retResult).isNotNull()
-
- val retIntent = retResult.data
- assertThat(retIntent).isNotNull()
-
- val retExtra = retIntent!!.extras
- assertThat(retExtra).isNotNull()
- assertThat(retExtra!!.size).isEqualTo(extra.size)
- assertThat(retExtra.getString(key1)).isEqualTo(extra.getString(key1))
- assertThat(retExtra.getInt(key2)).isEqualTo(extra.getInt(key2))
- }
-
- @Test
- fun testOverrideActivityResult_shallNotMerge_nonAdded_woIntent_withChallenge() {
- val extra = Bundle().apply {
- putString("test2", "test123")
- }
-
- val key2 = "test2"
- val intent = Intent().apply {
- putExtra(key2, 3456L)
- }
-
- val retResult = viewModel.getOverrideActivityResult(ActivityResult(33, intent), extra)
-
- assertThat(retResult).isNotNull()
-
- val retIntent = retResult.data
- assertThat(retIntent).isNotNull()
-
- val retExtra = retIntent!!.extras
- assertThat(retExtra).isNotNull()
- assertThat(retExtra!!.size).isEqualTo(intent.extras!!.size)
- assertThat(retExtra.getString(key2)).isEqualTo(intent.extras!!.getString(key2))
- }
-
- @Test
- fun testOverrideActivityResult_shallMerge_added_woIntent_withChallenge() {
- val key1 = "test1"
- val key2 = "test2"
- val extra = Bundle().apply {
- putString(key1, "test123")
- putInt(key2, 9999)
- }
-
- val key3 = "test3"
- val intent = Intent().apply {
- putExtra(key3, 3456L)
- }
-
- viewModel.isNewFingerprintAdded = true
-
- val retResult = viewModel.getOverrideActivityResult(ActivityResult(33, intent), extra)
- assertThat(retResult).isNotNull()
-
- val retIntent = retResult.data
- assertThat(retIntent).isNotNull()
-
- val retExtra = retIntent!!.extras
- assertThat(retExtra).isNotNull()
- assertThat(retExtra!!.size).isEqualTo(extra.size + intent.extras!!.size)
- assertThat(retExtra.getString(key1)).isEqualTo(extra.getString(key1))
- assertThat(retExtra.getInt(key2)).isEqualTo(extra.getInt(key2))
- assertThat(retExtra.getLong(key3)).isEqualTo(intent.extras!!.getLong(key3))
- }
-
- @Test
- fun testIsMaxEnrolledReached() {
- val uid = 100
- fingerprintRepository = newFingerprintRepository(
- fingerprintManager,
- FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
- 3
- )
- viewModel = FingerprintEnrollmentViewModel(
- application,
- fingerprintRepository,
- newAllFalseRequest(application)
- )
-
- setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 0)
- assertThat(viewModel.isMaxEnrolledReached(uid)).isFalse()
-
- setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 1)
- assertThat(viewModel.isMaxEnrolledReached(uid)).isFalse()
-
- setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 2)
- assertThat(viewModel.isMaxEnrolledReached(uid)).isFalse()
-
- setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 3)
- assertThat(viewModel.isMaxEnrolledReached(uid)).isTrue()
-
- setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 4)
- assertThat(viewModel.isMaxEnrolledReached(uid)).isTrue()
- }
-
- @Test
- fun testSetResultFlow_defaultEmpty() = runTest {
- val activityResults = listOfSetResultFlow()
-
- runCurrent()
-
- assertThat(activityResults.size).isEqualTo(0)
- }
-
- @Test
- fun testCheckFinishActivityDuringOnPause_doNothingIfIsSuw() = runTest {
- viewModel = FingerprintEnrollmentViewModel(
- application,
- fingerprintRepository,
- newIsSuwRequest(application)
- )
-
- val activityResults = listOfSetResultFlow()
-
- viewModel.checkFinishActivityDuringOnPause(
- isActivityFinishing = false,
- isChangingConfigurations = false,
- scope = this
- )
- runCurrent()
-
- assertThat(activityResults.size).isEqualTo(0)
- }
-
- @Test
- fun testCheckFinishActivityDuringOnPause_doNothingIfIsWaitingActivity() = runTest {
- val activityResults = listOfSetResultFlow()
-
- viewModel.isWaitingActivityResult.value = true
- viewModel.checkFinishActivityDuringOnPause(
- isActivityFinishing = false,
- isChangingConfigurations = false,
- scope = this
- )
- runCurrent()
-
- assertThat(activityResults.size).isEqualTo(0)
- }
-
- @Test
- fun testCheckFinishActivityDuringOnPause_doNothingIfIsActivityFinishing() = runTest {
- val activityResults = listOfSetResultFlow()
-
- viewModel.checkFinishActivityDuringOnPause(
- isActivityFinishing = true,
- isChangingConfigurations = false,
- scope = this
- )
- runCurrent()
-
- assertThat(activityResults.size).isEqualTo(0)
- }
-
- @Test
- fun testCheckFinishActivityDuringOnPause_doNothingIfIsChangingConfigurations() = runTest {
- val activityResults = listOfSetResultFlow()
-
- viewModel.checkFinishActivityDuringOnPause(
- isActivityFinishing = false,
- isChangingConfigurations = true,
- scope = this
- )
- runCurrent()
-
- assertThat(activityResults.size).isEqualTo(0)
- }
-
- @Test
- fun testCheckFinishActivityDuringOnPause_defaultFinishSelf() = runTest {
- val activityResults = listOfSetResultFlow()
-
- viewModel.checkFinishActivityDuringOnPause(
- isActivityFinishing = false,
- isChangingConfigurations = false,
- scope = backgroundScope
- )
- runCurrent()
-
- assertThat(activityResults.size).isEqualTo(1)
- assertThat(activityResults[0].resultCode).isEqualTo(BiometricEnrollBase.RESULT_TIMEOUT)
- assertThat(activityResults[0].data).isEqualTo(null)
- }
-
- private fun TestScope.listOfSetResultFlow(): List<ActivityResult> =
- mutableListOf<ActivityResult>().also {
- backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
- viewModel.setResultFlow.toList(it)
- }
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.kt b/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.kt
deleted file mode 100644
index 755f6d0..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.kt
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.utils
-
-import android.content.Context
-import android.content.Intent
-import android.text.TextUtils
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest
-import com.google.android.setupcompat.util.WizardManagerHelper
-
-object EnrollmentRequestUtils {
- @JvmStatic
- fun newAllFalseRequest(context: Context): EnrollmentRequest {
- return newRequest(
- context = context,
- isSuw = false,
- isSuwDeferred = false,
- isSuwPortal = false,
- isSuwSuggestedActionFlow = false,
- isSuwFirstRun = false,
- isFromSettingsSummery = false)
- }
-
- @JvmStatic
- fun newIsSuwRequest(context: Context): EnrollmentRequest {
- return newRequest(
- context = context,
- isSuw = true,
- isSuwDeferred = false,
- isSuwPortal = false,
- isSuwSuggestedActionFlow = false,
- isSuwFirstRun = false,
- isFromSettingsSummery = false)
- }
-
- @JvmStatic
- fun newIsSuwDeferredRequest(context: Context): EnrollmentRequest {
- return newRequest(
- context = context,
- isSuw = true,
- isSuwDeferred = true,
- isSuwPortal = false,
- isSuwSuggestedActionFlow = false,
- isSuwFirstRun = false,
- isFromSettingsSummery = false, null)
- }
-
- @JvmStatic
- fun newIsSuwPortalRequest(context: Context): EnrollmentRequest {
- return newRequest(
- context = context,
- isSuw = true,
- isSuwDeferred = false,
- isSuwPortal = true,
- isSuwSuggestedActionFlow = false,
- isSuwFirstRun = false,
- isFromSettingsSummery = false)
- }
-
- @JvmStatic
- fun newIsSuwSuggestedActionFlowRequest(
- context: Context
- ): EnrollmentRequest {
- return newRequest(
- context = context,
- isSuw = true,
- isSuwDeferred = false,
- isSuwPortal = false,
- isSuwSuggestedActionFlow = true,
- isSuwFirstRun = false,
- isFromSettingsSummery = false)
- }
-
- fun newRequest(
- context: Context,
- isSuw: Boolean,
- isSuwDeferred: Boolean,
- isSuwPortal: Boolean,
- isSuwSuggestedActionFlow: Boolean,
- isSuwFirstRun: Boolean,
- isFromSettingsSummery: Boolean,
- theme: String? = null
- ): EnrollmentRequest {
- val i = Intent()
- i.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, isSuw)
- i.putExtra(WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP, isSuwDeferred)
- i.putExtra(WizardManagerHelper.EXTRA_IS_PORTAL_SETUP, isSuwPortal)
- i.putExtra(WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, isSuwSuggestedActionFlow)
- i.putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, isSuwFirstRun)
- i.putExtra(BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY, isFromSettingsSummery)
- if (!TextUtils.isEmpty(theme)) {
- i.putExtra(WizardManagerHelper.EXTRA_THEME, theme)
- }
- return EnrollmentRequest(i, context, true)
- }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/utils/FingerprintRepositoryUtils.java b/tests/unit/src/com/android/settings/biometrics2/utils/FingerprintRepositoryUtils.java
deleted file mode 100644
index fcf926e..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/utils/FingerprintRepositoryUtils.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.utils;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.hardware.biometrics.SensorProperties;
-import android.hardware.fingerprint.Fingerprint;
-import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorProperties;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
-
-import androidx.annotation.NonNull;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-
-import java.util.ArrayList;
-
-public class FingerprintRepositoryUtils {
-
- public static void setupSuwMaxFingerprintsEnrollable(
- @NonNull Context context,
- @NonNull Resources mockedResources,
- int numOfFp) {
- final int resId = context.getResources().getIdentifier("suw_max_fingerprints_enrollable",
- "integer", context.getPackageName());
- when(mockedResources.getInteger(resId)).thenReturn(numOfFp);
- }
-
- public static FingerprintRepository newFingerprintRepository(
- @NonNull FingerprintManager mockedFingerprintManager,
- @FingerprintSensorProperties.SensorType int sensorType,
- int maxEnrollmentsPerUser) {
-
- final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
- props.add(new FingerprintSensorPropertiesInternal(
- 0 /* sensorId */,
- SensorProperties.STRENGTH_STRONG,
- maxEnrollmentsPerUser,
- new ArrayList<>() /* componentInfo */,
- sensorType,
- true /* resetLockoutRequiresHardwareAuthToken */));
- doAnswer(invocation -> {
- final IFingerprintAuthenticatorsRegisteredCallback callback =
- invocation.getArgument(0);
- callback.onAllAuthenticatorsRegistered(props);
- return null;
- }).when(mockedFingerprintManager).addAuthenticatorsRegisteredCallback(any());
- return new FingerprintRepository(mockedFingerprintManager);
- }
-
- public static void setupFingerprintEnrolledFingerprints(
- @NonNull FingerprintManager mockedFingerprintManager,
- int userId,
- int enrolledFingerprints) {
- final ArrayList<Fingerprint> ret = new ArrayList<>();
- for (int i = 0; i < enrolledFingerprints; ++i) {
- ret.add(new Fingerprint("name", 0, 0, 0L));
- }
- when(mockedFingerprintManager.getEnrolledFingerprints(userId)).thenReturn(ret);
- }
-}
diff --git a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
index 8a4acd2..1c482ef 100644
--- a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
@@ -36,8 +36,6 @@
import android.net.wifi.WifiManager;
import android.os.Handler;
import android.os.Looper;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleOwner;
@@ -78,15 +76,8 @@
private static final String NOT_CONNECTED = "Not connected";
private static final String SUB_ID_1 = "1";
private static final String SUB_ID_2 = "2";
- private static final String INVALID_SUB_ID = "-1";
private static final String DISPLAY_NAME_1 = "Sub 1";
private static final String DISPLAY_NAME_2 = "Sub 2";
- private static final String SUB_MCC_1 = "123";
- private static final String SUB_MNC_1 = "456";
- private static final String SUB_MCC_2 = "223";
- private static final String SUB_MNC_2 = "456";
- private static final String SUB_COUNTRY_ISO_1 = "Sub 1";
- private static final String SUB_COUNTRY_ISO_2 = "Sub 2";
@Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -178,14 +169,10 @@
}
private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId,
- int carrierId, String displayName, String mcc, String mnc, String countryIso,
- int cardId, boolean isVisible, boolean isValid, boolean isActive, boolean isAvailable,
+ String displayName, boolean isVisible, boolean isValid, boolean isActive,
boolean isActiveData) {
- return new SubscriptionInfoEntity(subId, slotId, carrierId,
- displayName, displayName, 0, mcc, mnc, countryIso, false, cardId,
- TelephonyManager.DEFAULT_PORT_INDEX, false, null,
- SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, isVisible,
- "1234567890", true, false, isValid, true, isActive, isAvailable, isActiveData);
+ return new SubscriptionInfoEntity(subId, slotId, false, false, displayName, isVisible,
+ false, isValid, isActive, isActiveData);
}
@Test
@@ -253,10 +240,10 @@
@Test
public void updateCellularSummary_getActiveSubscriptionInfo_cbrs() {
mController.setDefaultDataSubscriptionId(Integer.parseInt(SUB_ID_2));
- mActiveSubInfo = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, false, true, true, true, true);
- mDefaultDataSubInfo = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, false, true, true, true, false);
+ mActiveSubInfo = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1,
+ false, true, true, true);
+ mDefaultDataSubInfo = setupSubscriptionInfoEntity(SUB_ID_2, 1, DISPLAY_NAME_2,
+ false, true, true, false);
mSubscriptionInfoEntityList.add(mActiveSubInfo);
mSubscriptionInfoEntityList.add(mDefaultDataSubInfo);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -265,8 +252,8 @@
mController.updateCellularSummary();
assertThat(mPreference.getSummary()).isEqualTo(DISPLAY_NAME_2);
- mActiveSubInfo = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
+ mActiveSubInfo = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1,
+ true, true, true, true);
mSubscriptionInfoEntityList.add(mActiveSubInfo);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
mController.onAvailableSubInfoChanged(mSubscriptionInfoEntityList);
diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
index a98f83b..2b78212 100644
--- a/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
@@ -28,7 +28,6 @@
import android.content.Context;
import android.os.Looper;
import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
import android.text.TextUtils;
import androidx.lifecycle.LifecycleOwner;
@@ -63,12 +62,6 @@
private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
private static final String DISPLAY_NAME_1 = "Sub 1";
private static final String DISPLAY_NAME_2 = "Sub 2";
- private static final String SUB_MCC_1 = "123";
- private static final String SUB_MNC_1 = "456";
- private static final String SUB_MCC_2 = "223";
- private static final String SUB_MNC_2 = "456";
- private static final String SUB_COUNTRY_ISO_1 = "Sub 1";
- private static final String SUB_COUNTRY_ISO_2 = "Sub 2";
@Mock
private SubscriptionInfoEntity mSubInfo1;
@@ -140,12 +133,9 @@
}
private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId,
- int carrierId, String displayName, String mcc, String mnc, String countryIso,
- int cardId, boolean isValid, boolean isActive, boolean isAvailable) {
- return new SubscriptionInfoEntity(subId, slotId, carrierId, displayName, displayName, 0,
- mcc, mnc, countryIso, false, cardId, TelephonyManager.DEFAULT_PORT_INDEX, false,
- null, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
- "1234567890", true, false, isValid, true, isActive, isAvailable, false);
+ String displayName, boolean isValid, boolean isActive) {
+ return new SubscriptionInfoEntity(subId, slotId, false, false, displayName, false,
+ false, isValid, isActive, false);
}
private String setSummaryResId(String resName, String value) {
@@ -159,8 +149,7 @@
@Test
@UiThreadTest
public void getSummary_tapToActivePSim() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, false, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1, true, false);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
displayPreferenceWithLifecycle();
@@ -172,8 +161,7 @@
@Test
@UiThreadTest
public void getSummary_inactivePSim() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, false, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1, true, false);
doReturn(true).when(mSubscriptionManager).canDisablePhysicalSubscription();
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -187,8 +175,7 @@
@Test
@UiThreadTest
public void getSummary_defaultCalls() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -209,8 +196,7 @@
defaultConfig.append(setSummaryResId("default_active_sim_calls"))
.append(", ")
.append(setSummaryResId("default_active_sim_sms"));
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -228,10 +214,8 @@
@Test
@UiThreadTest
public void getAvailablePhysicalSubscription_withTwoPhysicalSims_returnTwo() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
- SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
- SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1, true, true);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, DISPLAY_NAME_2, true, true);
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
diff --git a/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java
index 42e3a83..f5329fa 100644
--- a/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java
@@ -30,7 +30,6 @@
import android.telecom.TelecomManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LifecycleRegistry;
@@ -70,15 +69,6 @@
private static final String DISPLAY_NAME_1 = "Sub 1";
private static final String DISPLAY_NAME_2 = "Sub 2";
private static final String DISPLAY_NAME_3 = "Sub 3";
- private static final String SUB_MCC_1 = "123";
- private static final String SUB_MNC_1 = "456";
- private static final String SUB_MCC_2 = "223";
- private static final String SUB_MNC_2 = "456";
- private static final String SUB_MCC_3 = "323";
- private static final String SUB_MNC_3 = "456";
- private static final String SUB_COUNTRY_ISO_1 = "Sub 1";
- private static final String SUB_COUNTRY_ISO_2 = "Sub 2";
- private static final String SUB_COUNTRY_ISO_3 = "Sub 3";
@Mock
private SubscriptionManager mSubMgr;
@@ -133,12 +123,9 @@
SubscriptionUtil.setActiveSubscriptionsForTesting(null);
}
- private SubscriptionInfoEntity setupSubscriptionInfoEntity(
- String subId, String displayName, String mcc, String mnc, String countryIso) {
- return new SubscriptionInfoEntity(subId, 1, 1, displayName, displayName, 0, mcc, mnc,
- countryIso, false, 1, TelephonyManager.DEFAULT_PORT_INDEX, false, null,
- SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false, "1234567890",
- true, false, true, true, true, true, false);
+ private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, String displayName) {
+ return new SubscriptionInfoEntity(subId, 1, false, false, displayName, false, false, true,
+ true, false);
}
@Test
@@ -151,8 +138,7 @@
@Test
public void getSummary_singleSub() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
- SUB_COUNTRY_ISO_1);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mController.displayPreference(mScreen);
@@ -164,10 +150,8 @@
@Test
public void getSummary_twoSubs() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
- SUB_COUNTRY_ISO_1);
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
- SUB_COUNTRY_ISO_2);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
@@ -180,10 +164,8 @@
@Test
public void onPreferenceChange_prefChangedToSub2_callbackCalledCorrectly() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
- SUB_COUNTRY_ISO_1);
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
- SUB_COUNTRY_ISO_2);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
@@ -197,10 +179,8 @@
@Test
public void onPreferenceChange_prefChangedToAlwaysAsk_callbackCalledCorrectly() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
- SUB_COUNTRY_ISO_1);
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
- SUB_COUNTRY_ISO_2);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
@@ -217,10 +197,8 @@
@Test
public void onPreferenceChange_prefBecomesAvailable_onPreferenceChangeCallbackNotNull() {
// Start with only one sub active, so the pref is not available
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
- SUB_COUNTRY_ISO_1);
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
- SUB_COUNTRY_ISO_2);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
@@ -240,10 +218,8 @@
@Test
public void onSubscriptionsChanged_twoSubscriptionsDefaultChanges_selectedEntryGetsUpdated() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
- SUB_COUNTRY_ISO_1);
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
- SUB_COUNTRY_ISO_2);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
@@ -261,10 +237,8 @@
@Test
public void onSubscriptionsChanged_goFromTwoSubscriptionsToOne_prefDisappears() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
- SUB_COUNTRY_ISO_1);
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
- SUB_COUNTRY_ISO_2);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
@@ -287,10 +261,8 @@
@Test
@UiThreadTest
public void onSubscriptionsChanged_goFromOneSubscriptionToTwo_prefAppears() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
- SUB_COUNTRY_ISO_1);
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
- SUB_COUNTRY_ISO_2);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
mSubscriptionInfoEntityList.add(mSubInfo1);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mController.onActiveSubInfoChanged(mSubscriptionInfoEntityList);
@@ -309,12 +281,9 @@
@Test
public void onSubscriptionsChanged_goFromTwoToThreeSubscriptions_listGetsUpdated() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
- SUB_COUNTRY_ISO_1);
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
- SUB_COUNTRY_ISO_2);
- mSubInfo3 = setupSubscriptionInfoEntity(SUB_ID_3, DISPLAY_NAME_3, SUB_MCC_3, SUB_MNC_3,
- SUB_COUNTRY_ISO_3);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
+ mSubInfo3 = setupSubscriptionInfoEntity(SUB_ID_3, DISPLAY_NAME_3);
mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
mSubscriptionInfoEntityList.add(mSubInfo1);
mSubscriptionInfoEntityList.add(mSubInfo2);
diff --git a/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
index f31e274..6897c01 100644
--- a/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
@@ -29,7 +29,6 @@
import android.content.Context;
import android.os.Looper;
import android.platform.test.flag.junit.SetFlagsRule;
-import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -75,8 +74,6 @@
@Mock
private SubscriptionManager mSubscriptionManager;
@Mock
- private SubscriptionInfo mSubscriptionInfo;
- @Mock
private FragmentTransaction mFragmentTransaction;
@Mock
private Lifecycle mLifecycle;
@@ -120,13 +117,10 @@
}
private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, String displayName,
- boolean isOpportunistic, boolean isValid, boolean isActive, boolean isAvailable) {
+ boolean isOpportunistic, boolean isValid, boolean isActive) {
int id = Integer.parseInt(subId);
- return new SubscriptionInfoEntity(subId, id, id,
- displayName, displayName, 0, "mcc", "mnc", "countryIso", false, id,
- TelephonyManager.DEFAULT_PORT_INDEX, isOpportunistic, null,
- SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
- "1234567890", true, false, isValid, true, isActive, isAvailable, false);
+ return new SubscriptionInfoEntity(subId, id, false, isOpportunistic, displayName, false,
+ false, isValid, isActive, false);
}
private MobileNetworkInfoEntity setupMobileNetworkInfoEntity(String subId,
@@ -144,7 +138,7 @@
@Test
public void isDialogNeeded_disableSingleSim_returnFalse() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true);
mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
doReturn(1).when(mTelephonyManager).getActiveModemCount();
@@ -153,12 +147,12 @@
@Test
public void isDialogNeeded_enableNonDefaultSimInMultiSimMode_returnTrue() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true);
mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), false);
doReturn(1).when(mTelephonyManager).getActiveModemCount();
// Ideally, it would be better if we could set the default data subscription to
// SUB_ID_OTHER, and set that as an active subscription id.
- mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, false, true, true, true);
+ mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, false, true, true);
mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
doReturn(2).when(mTelephonyManager).getActiveModemCount();
@@ -180,7 +174,7 @@
@Test
public void onPreferenceChange_singleSim_On_shouldEnableData() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true);
mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
mController.setSubscriptionInfoEntity(mSubInfo1);
mController.setMobileNetworkInfoEntity(mNetworkInfo1);
@@ -194,7 +188,7 @@
@Test
public void onPreferenceChange_multiSim_On_shouldEnableData() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true);
mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
mController.setSubscriptionInfoEntity(mSubInfo1);
mController.setMobileNetworkInfoEntity(mNetworkInfo1);
@@ -219,7 +213,7 @@
@Test
public void updateState_opportunistic_disabled() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true);
mController.init(mFragmentManager, SUB_ID, mSubInfo1, mNetworkInfo1);
mController.updateState(mPreference);
@@ -231,7 +225,7 @@
@Test
public void updateState_notOpportunistic_enabled() {
- mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true);
+ mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true);
mController.init(mFragmentManager, SUB_ID, mSubInfo1, mNetworkInfo1);
mController.updateState(mPreference);
diff --git a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
index b8dd5ac..6a50ffc 100644
--- a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
@@ -25,7 +25,6 @@
import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.biometrics.face.FaceFeatureProvider;
import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider;
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider;
import com.android.settings.bluetooth.BluetoothFeatureProvider;
import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider;
import com.android.settings.connecteddevice.stylus.StylusFeatureProvider;
@@ -82,7 +81,6 @@
public final BluetoothFeatureProvider mBluetoothFeatureProvider;
public final FaceFeatureProvider mFaceFeatureProvider;
public final FingerprintFeatureProvider mFingerprintFeatureProvider;
- public final BiometricsRepositoryProvider mBiometricsRepositoryProvider;
public PanelFeatureProvider panelFeatureProvider;
public SlicesFeatureProvider slicesFeatureProvider;
@@ -140,7 +138,6 @@
mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
mFaceFeatureProvider = mock(FaceFeatureProvider.class);
mFingerprintFeatureProvider = mock(FingerprintFeatureProvider.class);
- mBiometricsRepositoryProvider = mock(BiometricsRepositoryProvider.class);
wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
securitySettingsFeatureProvider = mock(SecuritySettingsFeatureProvider.class);
mAccessibilitySearchFeatureProvider = mock(AccessibilitySearchFeatureProvider.class);
@@ -273,11 +270,6 @@
}
@Override
- public BiometricsRepositoryProvider getBiometricsRepositoryProvider() {
- return mBiometricsRepositoryProvider;
- }
-
- @Override
public WifiTrackerLibProvider getWifiTrackerLibProvider() {
return wifiTrackerLibProvider;
}
diff --git a/tests/unit/src/com/android/settings/wifi/WepLessSecureWarningControllerTest.kt b/tests/unit/src/com/android/settings/wifi/WepLessSecureWarningControllerTest.kt
new file mode 100644
index 0000000..008539d
--- /dev/null
+++ b/tests/unit/src/com/android/settings/wifi/WepLessSecureWarningControllerTest.kt
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.wifi
+
+import android.content.Context
+import androidx.test.core.app.ApplicationProvider
+import com.android.settings.core.BasePreferenceController.AVAILABLE
+import com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE
+import com.android.wifitrackerlib.WifiEntry
+import com.google.common.truth.Truth.assertThat
+import org.junit.Rule
+import org.junit.Test
+import org.mockito.Mock
+import org.mockito.Spy
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.mockito.Mockito.`when` as whenever
+
+class WepLessSecureWarningControllerTest {
+ @get:Rule
+ val mockito: MockitoRule = MockitoJUnit.rule()
+ @Spy
+ private val context: Context = ApplicationProvider.getApplicationContext()
+ @Mock
+ private lateinit var mockWifiEntry: WifiEntry
+
+ private val controller = WepLessSecureWarningController(context, TEST_KEY)
+
+ @Test
+ fun getAvailabilityStatus_default_conditionallyUnavailable() {
+ assertThat(controller.availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+ }
+
+ @Test
+ fun getAvailabilityStatus_noWepSecurityType_conditionallyUnavailable() {
+ whenever(mockWifiEntry.securityTypes).thenReturn(listOf(WifiEntry.SECURITY_PSK))
+
+ controller.setWifiEntry(mockWifiEntry)
+
+ assertThat(controller.availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+ }
+
+ @Test
+ fun getAvailabilityStatus_containsWepSecurityType_available() {
+ whenever(mockWifiEntry.securityTypes).thenReturn(listOf(WifiEntry.SECURITY_WEP))
+
+ controller.setWifiEntry(mockWifiEntry)
+
+ assertThat(controller.availabilityStatus).isEqualTo(AVAILABLE)
+ }
+
+ private companion object {
+ const val TEST_KEY = "test_key"
+ }
+}